我想在结构中添加元素而不像我在下面所做的那样循环:
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中的元素。我想要一个动态结构数组,因为我不知道有多少元素,我将不得不添加它。
答案 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)