How to reshape/transform matrices with 3D data?

Hello!

I would like to reshape/transform matrices with 3D data (see attached photo). Is there an existing method for this?

Thank you

- - - - - - - - - - - - - - -

Edit:

Initial situation:

X=[1;2;3];
Y=[1,2,3];
Z=[1,2,3;4,5,6;7,8,9];

Target:

X=[1;1;1;2;2;2;3;3;3];
Y=[1;2;3;1;2;3;1;2;3];
Z=[1;2;3;4;5;6;7;8;9];

3 Comments

help meshgrid
help ndgrid
help reshape
Pleas provide a small example of inputs and outputs.

Sign in to comment.

 Accepted Answer

[y,x] = ndgrid(Y,X);
x = x(:);
y = y(:);
z = reshape(Z',[],1);

3 Comments

Thank you! One more question:
When X and Y don't have the same number of elements it gives me this error:
Subscripted assignment dimension mismatch
Do you have any further idea how to fix this?
@Manuela Gräfe: ndgrid does not require its inputs to have the same number of elements:
>> [Xm,Ym] = ndgrid(1:2,1:9); % no error!
>>
So you have an error but you did not show us the complete error message and you did not show us the code... If you actually want help then you should show us what you tried and the complete error message. Thia means all of the red text.
Hi, i would like to ask how to reshape back the data from right to the left of above figure?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!