如果我有一个定义为
的类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
我想要做的是拥有一个属性列表,遍历它并获取特定对象的值。 看起来它应该是可能的,但我没有在文档中找到它。
答案 0 :(得分:2)
value = getfield(struct, 'field')
答案 1 :(得分:2)
您可以使用:
obj = myclass();
propName = 'foo';
propValue = obj.(propName);
有关详细信息,请参阅Generating Field Names from Variables和Dot-Parentheses。
答案 2 :(得分:0)
cellfun( @(prop) obj.(prop), properties(obj), 'UniformOutput', false )