我想在数组中总结几个不同大小的向量.每当其中一个向量从我的程序中删除时,我想将它附加到我的数组中.像这样:
array = [array, vector];
Run Code Online (Sandbox Code Playgroud)
最后我想让这个数组成为函数的输出.但它给了我错误的结果.这可以用MATLAB吗?
谢谢和亲切的问候,达米安
好吧,鉴于我们正在处理不同大小的列向量,你不能将它们全部放在数值数组中,因为数值数组必须是矩形的.如果你真的想把它们放在数值数组中,那么数组的列长度需要是最长向量的长度,你必须用NaN填充较短的向量.
鉴于此,正如chaohuang在评论中暗示的那样,更好的解决方案是使用单元阵列,并在每个单元格中存储一个向量.问题是你事先不知道会有多少向量.我知道这个问题的常用方法如下(但如果有人有更好的想法,我很想学习!):
UpperBound = SomeLargeNumber;
Array = cell(1, UpperBound);
Counter = 0;
while SomeCondition
Counter = Counter + 1;
if Counter > UpperBound
error('You did not choose a large enough upper bound!');
end
%#Create your vector here
Array{1, Counter} = YourVectorHere;
end
Array = Array(1, 1:Counter);
Run Code Online (Sandbox Code Playgroud)
换句话说,事先选择一些上限,确定在循环中不会超出上限,然后在循环结束后将单元格数组缩小到大小.此外,我已经设置了一个错误陷阱,以防你选择上限变得太小!
哦,顺便说一下,我刚才在你的问题中注明了"总结几个载体"这几个字.这是一个比喻,还是你真的想在sum某个地方进行手术?