如何用matlab实现高维矩阵维度的调整,把A*B*C*D的四维矩阵转换成A*C*B*D的四维矩阵?

如何用matlab实现高维矩阵维度的调整,把A*B*C*D的四维矩阵转换成A*C*B*D的四维矩阵?
貌似直接做reshape是不对的,比如我原本数据维度是 61,73,61,110,画出某位置第4维的数据,图是这样的:
figure,plot(squeeze(Data(23,40,23,:)))




我想把原本的 61,73,61,110的数据变成61,61,73,110,简单做reshape之后
test = reshape(Data,61,61,73,110);
画出的图是这样的:
figure,plot(squeeze(test(23,23,40,:)))

两个图不同,说明简单的使用reshape不对的吧?那我想把 61,73,61,110的数据变成61,61,73,110应该如何做呢
缘缘不哭 1年前 已收到1个回答 举报

mayuan84 幼苗

共回答了18个问题采纳率:88.9% 举报

用permute函数
原来的数据是 A B C D,换为 A C B D的时候,2和3两个维度的数据互换
就是将 1 2 3 4的顺序变为 1 3 2 4,这时候用permute函数就可以
permute(Data,[1 3 2 4])

1年前

8
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 1.063 s. - webmaster@yulucn.com