首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Nx1数组创建Nx2数组-Matlab

从Nx1数组创建Nx2数组-Matlab
EN

Stack Overflow用户
提问于 2016-06-08 18:58:31
回答 3查看 426关注 0票数 2

我有一个尺寸为N的一维数组(例如A) (即Nx1;N行,1列)。现在,我想创建一个大小为Nx2(N-行,2-列)的数组,数组A作为一列,另一列具有相同的元素(在下面的示例中为0)。

例如如果

代码语言:javascript
复制
A =[1;2;3;4;5]; 

我想要创建一个矩阵B

代码语言:javascript
复制
B=[0 1; 0 2; 0 3; 0 4; 0 5]

我如何在Matlab中做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-08 18:59:46

您可以将B初始化为所有零的Nx2数组,然后将第二列分配给A中的值。

代码语言:javascript
复制
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填充未知的值。

代码语言:javascript
复制
% 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;
票数 6
EN

Stack Overflow用户

发布于 2016-06-08 19:00:29

你也可以滥用bsxfun作为一条线-

代码语言:javascript
复制
bsxfun(@times,[0,1],A)

或者矩阵-对隐含展开的乘法-

代码语言:javascript
复制
A*[0,1]
票数 8
EN

Stack Overflow用户

发布于 2016-06-08 20:36:19

您可以尝试这种方法。

代码语言:javascript
复制
B=[zeros(length(A),1) A]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37710755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档