微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 matlab 中将 3D 重塑为 2D 并再次返回

如何解决在 matlab 中将 3D 重塑为 2D 并再次返回

我有 3D 数据 64X148X2466,我想将其中的数据重塑为 2D:9472X2466,对其进行一些操作,然后将数据带回原来的 64X148X2466 数组。当我尝试将其恢复时,我尝试过的所有内容都会混合列或行,例如:

y = reshape(Z,[],2466)';  
z = reshape(y,64,1484,2466); %this mixes some of the columns up,and permute is unsatisfactory too.

例如,Z 是一个 3X4X2 的数组:

val(:,:,1) =

       -1643       -1233       -1613       -1828
       -1300       -1640       -1890       -1646
       -1426       -1773       -1379       -2089


val(:,2) =

       -1025       -1260       -1383       -1709
       -1553       -1241       -1450       -1882
       -1185       -1408        -741       -1620

y = reshape(Z,2)'; %给我:

-1643 -1300 -1426 -1233 -1640 -1773 -1613 -1890 -1379 -1828 -1646 -2089

-1025 -1553 -1185 -1260 -1241 -1408 -1383 -1450 -741 -1709 -1882 -1620

%这很好,但是

z = reshape(y,2466); %这给了我:

val(:,1) =

   -1643       -1553       -1233       -1241
   -1025       -1426       -1260       -1773
   -1300       -1185       -1640       -1408

val(:,2) =

   -1613       -1450       -1828       -1882
   -1383       -1379       -1709       -2089
   -1890        -741       -1646       -1620

% 这不好。我需要返回原始数组结构。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。