MATLAB Answers

0

2D matrix to 3D

Asked by Chaodong Li on 5 Jun 2019
Latest activity Commented on by madhan ravi
on 5 Jun 2019
Can anyone help me with making a 2D matrix into a 3D matrix?I have aI have a (616*780) 2d matrix and I need to make a 3D matrix of dimensions (616*780 x M) I need to take (616*780) consecutive matrices by row for layers,where M is the max value in the 2d matrix. Means I want to slice the 2D matrix.
I would appreciate it if anyone could help me! Thank you very much!

  0 Comments

Sign in to comment.

2 Answers

Answer by KALYAN ACHARJYA on 5 Jun 2019
Edited by KALYAN ACHARJYA on 5 Jun 2019
 Accepted Answer

Here I used the multidimetional arrays
mat1(:,:,1)=[1,2,3,4; 5,6,7,8; 9,10,11,12];
mat1(:,:,2)=[1,2,3,4; 5,6,7,8; 9,10,11,12];
mat1(:,:,3)=[1,2,3,4; 5,6,7,8; 9,10,11,12];
disp(mat1);
Result:
(:,:,1) =
1 2 3 4
5 6 7 8
9 10 11 12
(:,:,2) =
1 2 3 4
5 6 7 8
9 10 11 12
(:,:,3) =
1 2 3 4
5 6 7 8
9 10 11 12
Check?
>> whos mat1
Name Size Bytes Class Attributes
mat1 3x4x3 288 double
>>

  2 Comments

Thank you very much.But my two dimensional matrices have different values.I'm actually representing terrain information in a two-dimensional matrix,evey value is elevation.Can i still use that notation?and how to write the code?
Huh?

Sign in to comment.


Answer by madhan ravi
on 5 Jun 2019

repmat(a,1,1,max(a(:))) % where a is your matrix if you have decimals in your matrix then use round function for max() to make the max value as an integer

  0 Comments

Sign in to comment.