Reduce Matrix Dimensions for 5D-Data

3 次查看(过去 30 天)
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);

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by