Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从N x 1阵列Matlab创建N x 2阵列_Arrays_Matlab - Fatal编程技术网

Arrays 从N x 1阵列Matlab创建N x 2阵列

Arrays 从N x 1阵列Matlab创建N x 2阵列,arrays,matlab,Arrays,Matlab,我有一个大小为N(即nx1;N行,1列)的一维数组(比如a)。现在,我想创建一个大小为nx2(N行,2列)的数组,数组A作为一列,另一列使用相同的元素(在下面的给定示例中为0) 例如,如果 我想创建一个矩阵B,它是 如何在Matlab中执行此操作?您可以将B初始化为一个包含所有零的Nx2数组,然后将第二列指定给A中的值 A = [1;2;3;4;5]; B = zeros(numel(A), 2); B(:,2) = A; % 0 1 % 0 2 % 0

我有一个大小为N(即nx1;N行,1列)的一维数组(比如a)。现在,我想创建一个大小为nx2(N行,2列)的数组,数组A作为一列,另一列使用相同的元素(在下面的给定示例中为0)

例如,如果

我想创建一个矩阵B,它是


如何在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;
你也可以滥用一个班轮-

bsxfun(@times,[0,1],A)
或者隐式展开的矩阵乘法-

A*[0,1]

你可以试试这种方法

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

喜欢这些方法(+1)@Divakar:我不明白在这种方法中,我应该怎么做才能得到一个非零的值?例如,对于包含22和@SaravanaKumar的列,您可以执行
bsxfun(@plus,a*[0,1],[22,0])
。但为了提高效率,我建议使用
@Suever的答案
,用
B=22*one初始化(numel(A),2)B(:,2)=A。或者只是连接:
B=[22*one(numel(A),1)A]
A*[0,1]
B=[zeros(length(A),1) A]