MATLAB permute命令的操作逻辑

MATLAB中permute命令可以对高维矩阵的轴进行操作,例如使2*3*4的三维矩阵调整为4*2*3,那么具体函数内部进行了什么操作呢?

我们知道matlab里有两种坐标系,一种是我们熟知的笛卡尔坐标系,用命令axis xy实现,以二维图为例,原点在左下角

还有一种是matlab中矩阵的索引体系,用命令axis ij实现,以二维图为例,原点在左上角

permute命令就是基于axis ij这种坐标轴下进行的操作

下面我们以一个三维矩阵的例子来说明命令permute的内部操作逻辑

A(:,:,1)=[1 2;3 4];
A(:,:,2)=[5 6;7 8];
A(:,:,3)=[9 10; 11 12];
我们有

val(:,:,1) =

     1     2
     3     4


val(:,:,2) =

     5     6
     7     8


val(:,:,3) =

     9    10
    11    12

permute(a,order)操作分为两种情况

1.保持坐标轴关系不变

也就是order=[2 3 1]或[3 1 2]

这时候只用找到一个角度来重新观察这个矩阵即可

例如下图中所示

用MATLAB运行结果进行验证

D=permute(A,[2 3 1]);

val(:,:,1) =

     1     5     9
     2     6    10


val(:,:,2) =

     3     7    11
     4     8    12

2,某两个轴进行交换

例如order = [1 3 2] [2 1 3] [3 2 1]

那么就是针对这两个轴的数据进行转置,如上图所示

用MATLAB运行结果进行验证

B=permute(A,[2 1 3]);

val(:,:,1) =

     1     3
     2     4


val(:,:,2) =

     5     7
     6     8


val(:,:,3) =

     9    11
    10    12

 

  • 31
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值