Pietair
Pietair

Reputation: 406

MATLAB Concatenate vectors with unequal dimensions

Lets say I have got vector1:

2
3
5
6
7
9

And a vector2:

1
2
3

Now I would like to obtain the following matrix:

2   1
3   2
5   3 
6   1
7   2
9   3

That is, I want to add vector2 as a column next to vector1 until the new column is completely filled. I have to do this with a lot of vectors with different sizes. The only thing I know in advance is that the length of vector1 is an integer multiple of the length of vector2.

Any suggestions?

Upvotes: 0

Views: 877

Answers (3)

fpe
fpe

Reputation: 2750

This could be an alternative

[x [y'; y']]

Upvotes: 0

Praetorian
Praetorian

Reputation: 109119

Use repmat to replicate the smaller matrix.

a = [2 3 5 6 7 9]';
b = [1 2 3]';
c = [a repmat(b, length(a) / length(b), 1)]

Result:

c =

     2     1
     3     2
     5     3
     6     1
     7     2
     9     3

Upvotes: 2

Oleg
Oleg

Reputation: 10676

You can then replicate the vector:

[vector1, repmat(vector2,n,1)]

where n is your multiple of vector2.

Upvotes: 0

Related Questions