how to convert 4D into 3D?

22 views (last 30 days)
mohd akmal masud
mohd akmal masud on 30 Jul 2022
Edited: mohd akmal masud on 31 Jul 2022
Dear all,
the name file is LiverTS399.mat
how to convert it into 3D?
I tried use this command, but still 4D in workspace
load('LiverTS399.mat')
split = squeeze(cropVol);

Accepted Answer

Walter Roberson
Walter Roberson on 31 Jul 2022
split = reshape(cropVol, size(cropVol,1), size(cropVol,2), size(cropVol,3)*size(cropVol,4));
This would give you a 3D volume in which the 4th dimension has been spread out onto the third dimension.
or perhaps you want
split = squeeze(num2cell(cropVol, [1 2 3]));
This would give you a cell array in which each element was a 3D slice.
  1 Comment
mohd akmal masud
mohd akmal masud on 31 Jul 2022
Edited: mohd akmal masud on 31 Jul 2022
this is correct
split = reshape(cropVol, size(cropVol,1), size(cropVol,2), size(cropVol,3)*size(cropVol,4));
thank you so much @Walter Roberson
but the real size is [184 192 152] but I got is [184 192 608]
I try use this one but got Error
split = reshape(cropVol, size(cropVol,1), size(cropVol,2), size(cropVol,3));
Error using reshape
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that
dimension.

Sign in to comment.

More Answers (1)

Matt J
Matt J on 31 Jul 2022
If you mean you want the i-th 3D frame of the 4D data, then,
frame_i=cropVol(:,:,i)
  1 Comment
mohd akmal masud
mohd akmal masud on 31 Jul 2022
Edited: mohd akmal masud on 31 Jul 2022
thank you @Matt J
I use
frame_i=cropVol(:,:,:,4)
then give what I want

Sign in to comment.

Categories

Find more on Convert Image Type in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!