我有一个大小为N(即N×1; N行,1列)的一维数组(例如A)。现在我想创建一个大小为N x 2(N行,2列)的数组,其数组A为一列,另一列为相同元素(下面给出示例中为0)。从N×1阵列创建N×2阵列-Matlab
对于e.g如果
A =[1;2;3;4;5];
我想创建一个矩阵B是
B=[0 1; 0 2; 0 3; 0 4; 0 5]
如何在Matlab中做到这一点?
我有一个大小为N(即N×1; N行,1列)的一维数组(例如A)。现在我想创建一个大小为N x 2(N行,2列)的数组,其数组A为一列,另一列为相同元素(下面给出示例中为0)。从N×1阵列创建N×2阵列-Matlab
对于e.g如果
A =[1;2;3;4;5];
我想创建一个矩阵B是
B=[0 1; 0 2; 0 3; 0 4; 0 5]
如何在Matlab中做到这一点?
您可以将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]
爱这些方法(+1) – Suever
@Divakar:我没有在这个方法我应该怎么做才能为非零值,明白了吗?例如,包含22的列和A. – Rhinocerotidae
@SaravanaKumar您可以执行'bsxfun(@ plus,A * [0,1],[22,0])'。但为了提高效率,我建议用'B = 22 * ones(numel(A),2);'和B(:,2)= A;'来初始化'@ Suever的答案'。或者只是连接:'B = [22 * ones(numel(A),1)A]'。 – Divakar