how to convert 4D into 3D?

30 vues (au cours des 30 derniers jours)
mohd akmal masud
mohd akmal masud le 30 Juil 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);

Réponse acceptée

Walter Roberson
Walter Roberson le 31 Juil 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 commentaire
mohd akmal masud
mohd akmal masud le 31 Juil 2022
Modifié(e) : mohd akmal masud le 31 Juil 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Matt J
Matt J le 31 Juil 2022
If you mean you want the i-th 3D frame of the 4D data, then,
frame_i=cropVol(:,:,i)
  1 commentaire
mohd akmal masud
mohd akmal masud le 31 Juil 2022
Modifié(e) : mohd akmal masud le 31 Juil 2022
thank you @Matt J
I use
frame_i=cropVol(:,:,:,4)
then give what I want

Connectez-vous pour commenter.

Catégories

En savoir plus sur Convert Image Type dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by