在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{:});