フィルターのクリア

Filtering array of custom objects

6 ビュー (過去 30 日間)
Timo Kuchheuser
Timo Kuchheuser 2018 年 11 月 25 日
編集済み: Sebastian Tilders 2022 年 7 月 23 日
Hey!
I was wondering if it is possible to implement the filtering of arrays as describes here: Find Array Elements That Meet a Condition for an array holding objects of a custom class.
I have a class with the following property
properties (Access = public)
stages (1,:) EnvelopeStage
end
An EnvelopeStage object has the following properties
properties (GetAccess = public, SetAccess = public)
name string
duration double {mustBeFinite, mustBeNonnegative, mustBeLessThanOrEqual(duration,1)} = 0
target_level double {mustBeFinite, mustBeNonnegative, mustBeLessThanOrEqual(target_level,1)} = 0
end
What would be the smartes way (besides iterating over the array) to filter by name?
Is there a way to implement or use a function that yields the elemtens with code like this:
stages(stages.name == 'foo');
Thank you very much
Tim

採用された回答

Honglei Chen
Honglei Chen 2018 年 11 月 26 日
You can probably try
idx = arrayfun(@(x)strcmp(x.name,'foo'),stages);
stages(idx);
HTH
  2 件のコメント
Timo Kuchheuser
Timo Kuchheuser 2018 年 11 月 26 日
That worked like a charm!
Thank you very much!
Sebastian Tilders
Sebastian Tilders 2022 年 7 月 23 日
編集済み: Sebastian Tilders 2022 年 7 月 23 日
This does not work, as it does not return indexes. It return strcmp results. stages(idx == 1) works for me.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatched Filter and Ambiguity Function についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by