1

次のように定義されたクラスがある場合

classdef myclass
  properties
     foo = 3;
     bar = 7;
  end
end

そして、私が書くプロパティ foo にアクセスしたい

obj = myclass()
obj.foo % Gives me 3

しかし、プロパティ名の文字列表現しかなく、それがどのプロパティなのかわからない場合は、どうすればよいでしょうか? 以下の例のように:

obj.someFunction('foo')  % or
someFunction(obj, 'foo') % should both give me the value of obj.foo

私がやりたいことは、プロパティのリストを取得し、それを繰り返し処理して、特定のオブジェクトの値を取得することです。可能であるように思われますが、ドキュメントで見つけることができませんでした。

4

3 に答える 3

3

value = getfield(struct, 'field')

于 2011-11-30T12:57:50.553 に答える
2

以下を使用できます。

obj = myclass();
propName = 'foo';
propValue = obj.(propName);

詳細については、「変数とドット括弧からフィールド名を生成する」を参照してください。

于 2011-12-02T06:57:17.027 に答える
0
cellfun( @(prop) obj.(prop), properties(obj), 'UniformOutput', false )
于 2011-11-30T12:59:52.327 に答える