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

时间:2016-06-08 18:58:31

标签: arrays matlab

我有一个大小为N的1D阵列(比如说A)(即N×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中执行此操作?

3 个答案:

答案 0 :(得分:8)

你也可以滥用bsxfun一行 -

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

或隐式扩展的矩阵乘法 -

A*[0,1]

答案 1 :(得分:6)

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

答案 2 :(得分:0)

您可以尝试这种方法

PHP