Given a= [1;2;3]
我想将其更改为b
where b
is
b(1,1,1) = 1
b(1,1,2) = 2
b(1,1,3) = 3.
我怎样才能做到这一点?没有内置命令吗?
Use permute http://www.mathworks.com/help/matlab/ref/permute.html to throw将第一个维度放在最后作为第三个维度,并将第三个和第二个维度放在前面(它们的顺序无关紧要)。因此,我们将有两个这样的实现,就像这样 -
permute(a,[3 2 1])
permute(a,[2 3 1])
您还可以使用reshape http://www.mathworks.com/help/matlab/ref/reshape.html将元素推回到三维,就像这样 -
reshape(a,1,1,numel(a))
关于的小教程permute
3D 数组A
没有任何permute
(尺寸的重新排列)变化将是:permute(A,[1 2 3])
.
现在,任何permuting
你这样做,会是w.r.t。的原始顺序[1 2 3]
。假设您想交换第一维和第三维,所以交换1
and 3
in [1 2 3]
,给我们[3 2 1]
并将其用作第二个参数permute
.
这里是为了让你的permuting
技能更强 - 比方说,您交换第一维和第三维,然后对这个排列的 3D 数组进行一些处理。现在,您想恢复到原始顺序,因此需要交换回第一维和第三维。所以,你使用[3,2,1]
再次,就像这样——permute(permute(A,[3 2 1]),[3 2 1])
这本质上是permute(A,[1 2 3])
是的,那就是A
, 回到home!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)