MATLAB:如何在给定属性名称的情况下获取类属性的值

时间:2011-11-30 12:36:43

标签: matlab matlab-class

如果我有一个定义为

的类
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

我想要做的是拥有一个属性列表,遍历它并获取特定对象的值。 看起来它应该是可能的,但我没有在文档中找到它。

3 个答案:

答案 0 :(得分:2)

value = getfield(struct, 'field')

答案 1 :(得分:2)

您可以使用:

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

有关详细信息,请参阅Generating Field Names from VariablesDot-Parentheses

答案 2 :(得分:0)

cellfun( @(prop) obj.(prop), properties(obj), 'UniformOutput', false )
相关问题