Reduce Matrix Dimensions for 5D-Data

4 ビュー (過去 30 日間)
Matthias Saurer
Matthias Saurer 2021 年 1 月 27 日
コメント済み: Matthias Saurer 2021 年 1 月 31 日
Lets say we have a 5D-Matrix M and want to convert it to 4D-matrix M' in a way such that we combine dim1 and dim3 into a new dim1':
Or more mathematically (hopefully this notation is understandable):
M'(:,m,n,p) = M(:,m,:,n,p) for all m,n,p.
Obviously we could use loops for that, but im looking for a more elegant way, maybe we could make clever use of sub2ind?
  2 件のコメント
Mara
Mara 2021 年 1 月 27 日
Hey Matthias,
maybe the function reshape() might help you with that
Matthias Saurer
Matthias Saurer 2021 年 1 月 31 日
You were absoluteley rigth, and permute was the last piece of the puzzle. Thanks for your help, Mara

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

採用された回答

Srivardhan Gadila
Srivardhan Gadila 2021 年 1 月 30 日
You can make use of the functions permute and reshape as follows:
% M is a matrix of size a x b x c x d x e
Mp = permute(M,[1 3 2 4 5]);
Md = reshape(Mp,[],b,d,e);
  1 件のコメント
Matthias Saurer
Matthias Saurer 2021 年 1 月 31 日
Nice and simple, thank you Sir!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by