如何在matlab中添加新列?

问题描述:

说我想添加第4列到3x3矩阵填充1。如何在matlab中添加新列?

% random 3x3 matrix 
matrix = randi([1 10],3,3); 

我知道如何添加一个新行充满的:

matrix = [matrix;ones(1,3)] 

但是当我尝试添加一个新列要么是这样的:

matrix =[ones(3,1) matrix] 

或类似的:

matrix = [ones(3,1);matrix] 

我得到错误约矩阵不作c onsistent。

+1

'matrix = [ones(3,1)matrix]'没有错误。 –

+2

'矩阵= [一(3,1)矩阵]'应该工作,但请注意,您在存储相同的变量的结果,因此,如果您再次运行矩阵将不再是一个3x3。你可能曾经犯过错,现在矩阵不是3x3。尝试将结果存储在一个新的变量中进行测试:'matrix2 = [ones(3,1)matrix]'或每次运行代码时清除变量。 –

+0

如果可能的话,尝试预先分配最终大小的矩阵。否则,添加一列或一行可能会很慢(特别是如果你这样做很多次) –

您的代码存储在您用作输入相同的变量输出。

这是危险的,如果你不小心。

例子:

matrix = randi([1 10],3,3); % Here matrix is 3x3 

matrix = [matrix; ones(1,3)]; % we add a row, now matrix is 4x3 

matrix =[ones(3,1) matrix]; % here we cannot add a 3x1 column since matrix is 4x3 

您可以随时添加调试代码,以了解发生了什么。

matrix = randi([1 10],3,3); % Here matrix is 3x3 
matrix = [matrix; ones(1,3)]; % we add a row, now matrix is 4x3 
disp size(matrix);    % will show you that matrix is no longer 3x3 
matrix =[ones(3,1) matrix];