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

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.

 Réponse acceptée

x=[1 2 3]
y=[4 5 6]
x1=repmat(x,numel(y),1)
out=[x1(:) repmat(y',numel(x),1)]

5 commentaires

Thank you for your answer but it still does not work for the case I have. I have a column of 514 elements and a column of 80 elements. When I compute the code it gives something like:
A=[. .
. .
. .
512 38
513 39
514 40]
But I actually need:
A=[001 01
001 02
001 03
. .
. .
. .
514 38
514 39
514 40]
What are the sizes of x and y, type
size(y)
Jan
Jan le 11 Juin 2013
@Glenn: What does "001" exactly mean? Numbers do not have leading zeros. If you are talking of strings, please explain this explicitly.
I think Azzi's solution does create the wanted result. Did you copy his code exactly?
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)]
I meant to say 1 in stead of 001. But I allready got the solution I wanted. Thanks

Connectez-vous pour commenter.

Plus de réponses (2)

Catégories

En savoir plus sur Simulink dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by