在Matlab中,我有一个简单的结构,我想构建一个这种结构的数组(我知道怎么做)。我的问题:有没有办法简单地将一个元素插入到该数组中,而不必告诉数组它应该在什么位置?Matlab语言中是否存在类似于c ++中的“push_back”函数的东西,它只是将你的元素放在向量的末尾?
问问题
2744 次
2 回答
3
您可以将索引与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。
于 2013-08-12T08:30:21.603 回答