我有一個大小爲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