在Matlab中迭代一组结构,ERROR:“引用不存在的字段'namefield'”

时间:2013-03-28 10:11:46

标签: arrays matlab struct

我以下列方式生成结构“str”的数组“AoS”:

for i = 1:iMax
    for j = 1:jMax
        str = calculatestructure();
        AoS(i,j) = str;
    end
end

现在,让我们说结构有两个字段:str.field1,str.field2。我想得到str.field1的值为AoS的第I和第J个元素,我根据使用的方法得到以下错误。 如果我使用这两种方法中的任何一种,我会得到错误:“引用不存在的字段'field1'”

value = AoS(I,J).field1; % method 1
value = AoS.field1(I,J); % method 2

有什么想法吗?是否有空间命令来访问结构数组?显示的帮助hereherehere对这个问题实际上并不有用。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您确定calculatetructure()的输出吗?我测试过:

for i = 1:10
    for j = 1:10
        str = struct();
        str.field1=1;
        str.field2=2;
        AoS(i,j) = str;
    end
end
AoS(1,1).field1

我确实得到结构的字段field1在结构AoS数组的1,1位置。也许calculatetructure()不会输出您认为的字段的结构。 AoS真的是一个iMax x jMax结构数组,并且每个元素都有field1字段吗?