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 回答