爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6304|回复: 4

[讨论] 对reshape、shiftdim、permute函数功能的解释

[复制链接]
发表于 2015-6-12 09:10:49 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
reshape:reshape的功能是最基本的,也是最原始的,它的对象是一个一个的元素,这里称为元素,也可以叫做一个一个的数字,比如A=[1:1:12],
                 B=reshape(A,2,3,2),首先会产生2X3x2的矩阵,可以理解为x,y,z方向,2行,3列,2层,然后把数字从1到12一个一个放进去。
shiftdim:简单的理解就是转移维的方向,这样解释很抽象。比如上面的B=reshape(A,2,3,2),B(:,:,1) =[1,3,5;2,4,6],B(:,:,2) =[7,9,11;8,10,12];前面的我们B(:,:,1) 把它叫做第一层,也可以想成z方向第一层,后面的B(:,:,2)叫做第二层,同理也可以想象成z方向第二层。c=shiftdim(B,1),就是把层的方向往前移动一次,从z移动到y,自然c(:,:,1)=[1,7;3,9;5,11],c(:,:,2)=[2,8;4,10;6,12];同理,可以移动两维。就像我们的房子,总是一个楼层一个楼层的移动和旋转,往天上看和往房子的右侧或者左侧看,看到的数字排列顺序是不一样的。矩阵实验室的思想就会以矩阵为单位变换。
permute:permute就更简单,就是按维数去取矩阵,比如我 A=reshape(1:12,2,3,2),得到A(:,:,1) =[1,3,5;2,4,6];A(:,:,2) =[7,9,11;8,10,12];d=permute(A,[3,1,2])
那取矩阵的规则就是我先从z方向就是第三维去取矩阵,再往x方向即第一维方向取矩阵,取得的三个矩阵自然就是d(:,:,1) =[1,2;7,8];d(:,:,2) =[3,4;9,10];d(:,:,3) =[5,6;11,12].把这些数字想象成一层一层的楼房的格点,就是这么简单。

评分

参与人数 1金钱 +6 贡献 +2 收起 理由
Aires + 6 + 2

查看全部评分

密码修改失败请联系微信:mofangbao
 成长值: 32430
发表于 2015-6-12 10:59:28 | 显示全部楼层
讲的不错
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

 楼主| 发表于 2015-6-12 11:42:51 | 显示全部楼层

我还只是菜鸟,还需要多多学习!感谢你的建议
密码修改失败请联系微信:mofangbao
发表于 2015-6-14 09:00:51 | 显示全部楼层
很不错                    
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-6-14 16:05:21 | 显示全部楼层
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表