繁体   English   中英

从N x 1 array-Matlab创建N x 2数组

[英]Create N x 2 array from N x 1 array-Matlab

我有一个大小为N的一维数组(比如说A)(即N x 1; N行,1列)。 现在我想创建一个大小为N x 2(N行,2列)的数组,其中数组A作为一列,另一列具有相同的元素(下面给出的示例中为0)。

例如,如果

A =[1;2;3;4;5]; 

我想创建一个矩阵B

B=[0 1; 0 2; 0 3; 0 4; 0 5]

我如何在Matlab中执行此操作?

您还可以滥用bsxfun进行单行 -

bsxfun(@times,[0,1],A)

或隐式扩展的矩阵乘法 -

A*[0,1]

您可以将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;

你可以尝试这种方法

B=[zeros(length(A),1) A]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM