在 Matlab 中,我有一个简单的结构,我想构建一个这种结构的数组(我知道如何做到这一点)。我的问题:有没有办法简单地将一个元素插入到该数组而不必告诉该数组在位置它应该是什么?类似于c ++中的" push_back" 函数,它只是将元素放在向量的末尾,是否存在于Matlab语言中?
答案 0 :(得分:2)
您可以将索引与end
a_struct = struct('x', 1);
a_struct(end+1) = struct('x', 2); % this writes the element to the `end+1`'th-position
disp(a_struct)
会给你:
1x2 struct array with fields:
x
但请注意,在引擎盖下,没有任何预分配,因为可能存在c ++向量等。
因此,end+1
的每个赋值都将在内部导致使用一个附加元素制作旧结构的副本。
参见例如http://blogs.mathworks.com/loren/2008/02/01/structure-initialization/#7对此提出意见。
答案 1 :(得分:0)