how to convert 4D into 3D?

24 ビュー (過去 30 日間)
mohd akmal masud
mohd akmal masud 2022 年 7 月 30 日
編集済み: mohd akmal masud 2022 年 7 月 31 日
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);

採用された回答

Walter Roberson
Walter Roberson 2022 年 7 月 31 日
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 件のコメント
mohd akmal masud
mohd akmal masud 2022 年 7 月 31 日
編集済み: mohd akmal masud 2022 年 7 月 31 日
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.

サインインしてコメントする。

その他の回答 (1 件)

Matt J
Matt J 2022 年 7 月 31 日
If you mean you want the i-th 3D frame of the 4D data, then,
frame_i=cropVol(:,:,i)
  1 件のコメント
mohd akmal masud
mohd akmal masud 2022 年 7 月 31 日
編集済み: mohd akmal masud 2022 年 7 月 31 日
thank you @Matt J
I use
frame_i=cropVol(:,:,:,4)
then give what I want

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeConvert Image Type についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by