Put 3 columns of two matrix in 1 row matrix

1 view (last 30 days)
I have matrix X and Y with dimension of 100 x 3
X= [ x1 x2 x3; x4 x5 x6; etc];
Y=[ y1 y2 y3; y4 y5 y6; etc];
Now I want a matrix that combines X and Y with the format as following
XY= [ x1 y1 x2 y2 x3 y3 x4 y4 x5 y5 x6 y6, etc]
I have tried XY=reshape([ X, Y].',1,[]); but it gave me XY=[ x1 x2 x3 y1 y2 y3 ]
Please helps

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 15 Nov 2013
Edited: Azzi Abdelmalek on 15 Nov 2013
X=[1 2 3;4 5 6];
Y=[11 22 33;44 55 66]
X=X';
Y=Y';
a=[X(:) Y(:)]'
out=a(:)'

More Answers (3)

Walter Roberson
Walter Roberson on 15 Nov 2013
reshape([X;Y])

Image Analyst
Image Analyst on 15 Nov 2013
Try this way:
% Create sample data.
numberOfRows = 5;
x = randi(9, numberOfRows, 3)
y = randi(9, numberOfRows, 3)
% Create the desired output array.
XY = zeros(1, numel(x)+numel(y)); % Initialize
% Stuff in the x
XY(1:2:end) = x';
% Stuff in the y
XY(2:2:end) = y'

Andrei Bobrov
Andrei Bobrov on 15 Nov 2013
reshape(permute(cat(3,X,Y),[3, 2, 1]),1,[])

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!