How do I extract 3D matrix from 5D matrix

6 views (last 30 days)
Hi everyone !
I working on 5D matrix configured as follow : [nt, nx, ny, np, nz]=size(D), such nt= 301; nx=12; ny=12; np=12; nz=12. I need to extract two matrices from D.
  • the first one A of size : [nt, nx, ny]=size(A);
  • the second B of size ; [nt, np, nz] =size(B);
Is there any Matlab code to extract these 3D matrices from D ?

Accepted Answer

John D'Errico
John D'Errico on 12 Jun 2019
Edited: John D'Errico on 12 Jun 2019
What does it mean to extract a specific matrix?
p = 1;
z = 1;
A = D(:,:,:,p,z);
is a matrix of the desired size, extracting the (p,z) submatrix from D. But you may mean something completely different.
For the latter, you need to learn how to use squeeze.
x = 1;
y = 1;
B = squeeze(D(:,x,y,:,:));
Time to read the manual for you, since you need to learn about indexing matrices, something basic.
  1 Comment
Yapo OBOUE
Yapo OBOUE on 12 Jun 2019
Thanks very much dear John D'Errico. It works very as I wanted. Thank a lot.

Sign in to comment.

More Answers (0)

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!