Hi, I am new to Matlab and I'm trying to use it as a tool to create a model.
I have two vectors, both of them are <1x6001> double,
x=(x1,x2,x3...)
y=(y1,y2,y3...)
but what I need is to merge them as one in the following way:
z=(x1,y1;x2,y2;x3,y3...,xn;yn) - comma separates the elements, and semicolon separates the pairs.
so that I can use it as input data.
Is there a way to do it?

 Accepted Answer

Daniel M
Daniel M on 29 Oct 2019
Edited: Daniel M on 29 Oct 2019
Simple:
x = 1:10;
y = x + 10; % for example
% x and y are both [1x10] row vectors as you mentioned
z = [x(:), y(:)];
% z is a [10x2] matrix of
% [x1, y1;
% x2, y2;
% .....
% xn, yn]
And if you want it back in 'row' form, just transpose z using an apostrophe '

7 Comments

I definitely get a 10x2 doing the way I wrote it. I get a 1x20 using z = [x,y]. Clearly, your x and y are [10x1].
Forget it - my fault, comment deleted ;-)
Thanks for the help, but how can I save them using the comma and semicolon?
z=(x1,y1;x2,y2;x3,y3;...;xn,yn)
The data is too large so I can't really do it manually.
Thank yo again for your help and time.
You don't need to.
xcol = x(:);
% this lists all the elements of x in one big column
% same thing as doing [x1;x2;...;xn]
ycol = y(:); % same thing
z = [x(:), y(:)];
% this concatenates x and y side by side
% same thing as [x1, y1 ; x2, y2; ...; xn, yn]
Thanks, I understand it now.
Can I use the function "save" to save "z" as a .txt?
Actually I just need to copy z and paste it into another program.
You can use writematrix to save it as a txt (among other similar things). save only save mat files.
Thank you for your help and time.
I appreciate it.

Sign in to comment.

More Answers (0)

Categories

Find more on Functions 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!