how to convert 4D into 3D?

23 visualizaciones (últimos 30 días)
mohd akmal masud
mohd akmal masud el 30 de Jul. de 2022
Editada: mohd akmal masud el 31 de Jul. de 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);

Respuesta aceptada

Walter Roberson
Walter Roberson el 31 de Jul. de 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 comentario
mohd akmal masud
mohd akmal masud el 31 de Jul. de 2022
Editada: mohd akmal masud el 31 de Jul. de 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.

Iniciar sesión para comentar.

Más respuestas (1)

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

Iniciar sesión para comentar.

Categorías

Más información sobre Convert Image Type en Help Center y File Exchange.

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by