是否可以根据位置访问子结构

时间:2016-04-22 12:41:10

标签: matlab

假设我有一个像这样的结构:

master = struct('a',struct(),'b',struct())
在R中

这将是一个向量列表,我可以使用master [1]或master [2]访问第一个或第二个元素。是否可以在Matlab中执行此操作?

谢谢!

1 个答案:

答案 0 :(得分:4)

简短的回答是你不能。

您可以将dynamic field references与结构的fieldnames一起使用:

master = struct('a',struct('hi', 1),'b',struct('hi', 2));
myfields = fieldnames(master); % Need temporary variable

master.(myfields{1})

返回:

ans = 

    hi: 1

您还可以创建一个结构数组:

master(1) = struct('a', 1, 'b', 2);
master(2) = struct('a', 3, 'b', 4);

您可以使用与R:

类似的索引(sorta)
>> [master(1).a master(2).b]

ans =

     1     4
>> [master(:).a]

ans =

     1     3