我正在运行parfor循环,在每次迭代时返回具有不同维度的矩阵,我需要将这些矩阵连接起来以获得最终结果
例如
T = [1 2 3 0
7 8 9 10]
我为每一行计算应该返回的最大块
第一行
[1 2
1 3]
和第二行
[7 8 9
7 9 10]
我的代码是
parfor i = 1:size(T,1)
findMBL(Data,T(i,:));
end
其中findMBL是返回块的函数。 我的问题是如何在一个矩阵中连续迭代的结果
结果应该是
[1 2 0
1 3 0
7 8 9
7 9 10]
注意:第1行和第2行中的零是填充
答案 0 :(得分:0)
如果您知道结果的最大大小,那么很容易做到。
% I am completely guessing this, substitute for realistic maximum possible size
res=zeros(2*size(T,1),size(T,2));
parfor i = 1:size(T,1)
auxres=findMBL(Data,T(i,:));
res([i*2-1,i*2],1:size(auxres,2))=auxres;
end
答案 1 :(得分:-1)
您必须定义一个缓冲区单元格,您将在每次迭代时放置数组,然后使用cell2mat
获取连接结果。