Combining 3d matrices

I have in total 4 matrices each of size (m)x(n)x(p) .. Lets say these matrices are called a,b,c and d.
I need to combine them in such a way that I would get a resulting matrix of size 2m x 2n x 2p, with the 2m coming from a and b, 2n from a and c, and 2p from a and d.
I can get the corresponding 2m x n x p and etc. using cat(1,a,b), cat (2,a,c) etc, but am unable to figure out the rest (or if this is even the right direction). Any help is appreciated.
Thanks!

Answers (1)

Matt J
Matt J on 2 Apr 2019
Edited: Matt J on 2 Apr 2019
Your description doesn't define the new matrix well enough. The result will have 8 times as many entries, but you only have 4 matrices to draw data from, so it is not clear where all the additional entries will come from.
However, here is one of many possibilities,
L1=[a,c;b,c];
L2=[d,d;d,d];
result=cat(3,L1,L2);

3 Comments

Prodip Das
Prodip Das on 3 Apr 2019
Edited: Prodip Das on 4 Apr 2019
EDIT: Sorry for the confusion, there are (have to be) 8 matrices in-fact - As correctly pointed out by you. I had to combine them (matrices a-h) in specific order - which I got by doing something as simple as
N(1:2:m*2, 1:2:n*2, 1:2:p*2) = a(:,:,:);
N(2:2:m*2, 1:2:n*2, 1:2:p*2) = b(:,:,:);
N(1:2:m*2, 2:2:n*2, 1:2:p*2) = c(:,:,:);
and so on for the rest... resulting in N being the 2mx2nx2p matrix.
Thanks!
I can remove/edit this query if this seems redundant now.
Thank you, it helped me too!
I'm glad, but if so please Accept-click the asnwer.

Sign in to comment.

Categories

Asked:

on 2 Apr 2019

Commented:

on 8 Jul 2021

Community Treasure Hunt

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

Start Hunting!