How to convert 2d matrix to 4d matrix?
14 views (last 30 days)
Show older comments
Abdel-Rahman Ashraf
on 18 May 2020
Commented: Ameer Hamza
on 18 May 2020
If I have a 4*4 matrix like this
a=[30,31;32,33]; % a can be more than 2d array
b=[40,41;42,43]; % b can be more than 2d array
c=[50,51;52,53]; % c can be more than 2d array
d=[60,61;62,63]; % d can be more than 2d array
X=[1,2,3,a;5,6,b,8;c,10,11,12;d,14,15,16];
how to convert it to, in this case, to 4*4*2*2 where X(1,4,1,1)=30, X(1,4,1,2)=31,X(1,4,2,1)=32,X(1,4,2,2)=33, X(2,3,1,1)=40,X(2,3,1,2)=41,X(2,3,2,1)=42,X(2,3,2,2)=43 and so on?
0 Comments
Accepted Answer
Ameer Hamza
on 18 May 2020
Edited: Ameer Hamza
on 18 May 2020
Are you looking for something like this
a=[30,31;32,33]; % a can be more than 2d array
b=[40,41;42,43]; % b can be more than 2d array
c=[50,51;52,53]; % c can be more than 2d array
d=[60,61;62,63]; % d can be more than 2d array
X = cat(3, a, b, c, d);
Or maybe this
a=[30,31;32,33]; % a can be more than 2d array
b=[40,41;42,43]; % b can be more than 2d array
c=[50,51;52,53]; % c can be more than 2d array
d=[60,61;62,63]; % d can be more than 2d array
X(1,4,:,:) = a;
X(2,3,:,:) = b;
X(3,2,:,:) = c;
X(4,1,:,:) = d;
Result
>> size(X)
ans =
4 4 2 2
4 Comments
More Answers (1)
Sulaymon Eshkabilov
on 18 May 2020
Edited: Sulaymon Eshkabilov
on 18 May 2020
It is going to be something like that:
X(:,:,:,1)=a;
X(:,:,:,2)=b;
X(:,:,:,3)=c;
X(:,:,:,4)=d;
See Also
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!