我想在MATLAB中初始化一个矩阵,并用循环添加它.我不确定开始时应该有多大,但我希望能够根据需要添加任意数量的子矩阵.
您可以将其定义为空:
matrix = [];
Run Code Online (Sandbox Code Playgroud)
然后追加行,列或子矩阵:
matrix = [matrix; newSubMatrix];
matrix = [matrix, newSubMatrix];
Run Code Online (Sandbox Code Playgroud)
但是,以这种方式扩大矩阵会导致Matlab重新分配内存.如果在每次循环迭代时发生这种情况,您的代码将变慢.
更好的方法是初始化为近似大小:
matrix = zeros(M,N);
Run Code Online (Sandbox Code Playgroud)
然后填充以下元素:
matrix(m,n) = exampleEntry;
matrix(m,:) = exampleRow;
matrix(:,n) = exampleCol;
Run Code Online (Sandbox Code Playgroud)
这样,只有当m或n大于M并且NMatlab需要放大矩阵时.