2016-04-22 86 views
1

访问substructs比方说,我有一个结构,像这样:是否有可能基于位置

master = struct('a',struct(),'b',struct()) 

R中,这将是向量的名单,我可以使用主[1访问第一个或第二个元素]或主[2]。是否有可能在Matlab中做到这一点?

谢谢!

+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