今儿个,咱来聊聊在MATLAB里头咋折腾矩阵的维度,主要是用到一个叫shiftdim
的玩意儿。一开始接触这东西,我也有点懵,后来琢磨琢磨,发现还挺有意思的。
话说我之前处理一个数据,那家伙,维度乱七八糟的。本来我以为它是个二维的表格,结果一读进来,发现它有三个维度!这可咋整,本来想直接用的公式都套不上去。
这时候,我想起来之前好像在哪儿瞄到过shiftdim
这个函数,说是能挪动矩阵的维度。我就赶紧去查查,发现这东西还真能救急!
shiftdim
这玩意儿,用法也简单。你给它一个矩阵,再告诉它你想把维度往哪儿挪,它就帮你搞定。比如说,我那个三维的数据,维度是[3, 4, 5],我想把它变成[5, 3, 4],我就用shiftdim(X, 2)
,这不就齐活!
这里头有个小细节,就是第二个参数,那个数字。正数就是往左挪,负数就是往右挪。你可以理解成,把维度排成一排,然后循环挪动。
具体咋操作?
- 我把那个乱七八糟的数据,假设叫它
data_messy
,给读进MATLAB里。 - 然后,我用
size
函数看看,size(data_messy)
,发现维度是[3, 4, 5]。 - 我就用
data_clean = shiftdim(data_messy, 2)
。 - 我再用
size(data_clean)
一看,维度果然变成[5, 3, 4]!
这下子,数据就规整多,我再用那些公式,就顺畅多。所以说,这shiftdim
有时候还真是个救星,能帮你把数据捋顺。
这只是shiftdim
的一种用法。它还能做些别的,比如把一个单维的数据,变成多维的。不过我平时主要就用它来挪挪维度,感觉已经挺够用。
shiftdim
这东西,就像个维度“搬运工”,能帮你把矩阵的维度搬来搬去。虽然平时不一定常用,但关键时刻,它能帮你解决大问题!
免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。