在Matlab中,在for循环中将小矩阵合成为大矩阵
假设我们有一个函数,它有一些输出,包括一些数字和矩阵在Matlab中,在for循环中将小矩阵合成为大矩阵,matlab,for-loop,matrix,Matlab,For Loop,Matrix,假设我们有一个函数,它有一些输出,包括一些数字和矩阵 [A,a,B,n,m] = func(file) 文件作为输入每次都不同,并且func将在循环中为读取该文件。 矩阵B始终有两列,其中包含可变行,这取决于func中的输入文件和计算。 现在,我希望每次在输出中保存这些矩阵B。迭代次数是固定的,比如说10次 for循环是这样的 for i=1:10 ..... %// here reads the name of the input file which differs each it
[A,a,B,n,m] = func(file)
文件
作为输入每次都不同,并且func
将在循环中为
读取该文件。
矩阵B
始终有两列,其中包含可变行,这取决于func
中的输入文件和计算。
现在,我希望每次在输出中保存这些矩阵B
。迭代次数是固定的,比如说10次
for
循环是这样的
for i=1:10
..... %// here reads the name of the input file which differs each iteration
[A,a,B,n,m] = func(file)
.....
end
有什么建议吗?使用单元格数组:
B_all = cell(1, 10);
for i=1:10
% here reads the name of the input file which differs each iteration
[A,a,B,n,m] = func(file);
B_all{i} = B;
% Continue calculation here
end;
如果您希望在最后合并它们(即拥有一个包含两列的矩阵):
谢谢。只有一条关于合并的评论。我知道,当行数不相同时,不可能将它们水平合并。但是,我们是否可以选择最大的一行,并为其他小行添加符号“-”?@Royeh可以将它们扩展到最大数量的行。但是在尝试将“-”放入新创建的行之前,您确定
B
是char
矩阵吗?还是一个数字矩阵?@CST_Link当然是数字矩阵,然后可以用零代替。@Royeh。也可以为你的空值占位符考虑<代码>楠<代码>。
B_merged = vertcat(B_all{:});