如何在没有在matlab中循环的情况下在struct数组中追加元素?

时间:2014-03-24 20:17:14

标签: matlab struct append

我想在结构中添加元素而不像我在下面所做的那样循环:

test_struct = struct ('item1', {} , 'item2' , {} ) ;
for k = 1 : 10
    test_struct(k).item1 = 1:10 ;
    test_struct(k).item2 = 2* (1:10) ;
end

有没有办法添加元素,比如在C#中添加List中的元素。我想要一个动态结构数组,因为我不知道有多少元素,我将不得不添加它。

2 个答案:

答案 0 :(得分:1)

<强>代码

%%// First Data (normal arrays)
data1 = 1:10;
data2 = 2* (1:10);
test_struct1 = struct('item1', {data1}, 'item2', {data2});

%%// New Data (normal arrays) to be appended
data1 = 11:20;
data2 = 4* (1:15);

%%// Main step that appends new data
test_struct1(end+1) = struct('item1', {data1}, 'item2', {data2});

为了验证,您可以使用此nice tool来比较结构,因为我认为MATLAB没有任何内置函数,至少在某些先前版本的MATLAB中没有。< / p>

答案 1 :(得分:0)

您可以在struct语句中执行此操作:

A={1:10,1:10};
B={2*(1:10),2*(1:20)};
test_struct=struct('item1',A,'item2',B)