我有一个尺寸为N的一维数组(例如A) (即Nx1;N行,1列)。现在,我想创建一个大小为Nx2(N-行,2-列)的数组,数组A作为一列,另一列具有相同的元素(在下面的示例中为0)。
例如如果
A =[1;2;3;4;5]; 我想要创建一个矩阵B
B=[0 1; 0 2; 0 3; 0 4; 0 5]我如何在Matlab中做到这一点?
发布于 2016-06-08 18:59:46
您可以将B初始化为所有零的Nx2数组,然后将第二列分配给A中的值。
A = [1;2;3;4;5];
B = zeros(numel(A), 2);
B(:,2) = A;
% 0 1
% 0 2
% 0 3
% 0 4
% 0 5 如果你真的只想要第一列中的零,你甚至不需要初始化B,因为MATLAB会自动用0填充未知的值。
% Make sure B isn't already assigned to something
clear B
% Assign the second column of uninitialized variable B to be equal to A
B(:,2) = A;发布于 2016-06-08 19:00:29
你也可以滥用bsxfun作为一条线-
bsxfun(@times,[0,1],A)或者矩阵-对隐含展开的乘法-
A*[0,1]发布于 2016-06-08 20:36:19
您可以尝试这种方法。
B=[zeros(length(A),1) A]https://stackoverflow.com/questions/37710755
复制相似问题