How do I add two columns to a matrix in ascending order?

2 次查看(过去 30 天)
I need a matrix which numbers ascend in the following way:
If I have the columns:
x=[1 2 3]
y=[4 5 6]
I want the matrix to be like:
A=[1 4
1 5
1 6
2 4
2 5
2 6
3 4
3 5
3 6]
I hope someone can help me with this.

采纳的回答

Azzi Abdelmalek
Azzi Abdelmalek 2013-6-11
x=[1 2 3]
y=[4 5 6]
x1=repmat(x,numel(y),1)
out=[x1(:) repmat(y',numel(x),1)]
  5 个评论
Glenn Roumen
Glenn Roumen 2013-6-11
I got it myself. Thank you for the answer. I used this code:
x1=repmat(i,numel(j),1);
x1=sortrows(x1);
out=[x1(:) repmat(j,numel(i),1)]
Glenn Roumen
Glenn Roumen 2013-6-11
I meant to say 1 in stead of 001. But I allready got the solution I wanted. Thanks

请先登录,再进行评论。

更多回答(2 个)

Iain
Iain 2013-6-11
x = repmat(x,numel(y),1)
y = repmat(y,1,size(x,2))
A = [x(:) y(:)]

Andrei Bobrov
Andrei Bobrov 2013-6-11
[ii,jj] = ndgrid(y,x);
out = [jj(:), ii(:)];

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by