matlab中数组转换的函数matlab中的数据维度转换相关的函数
permute(多维数抄组,[维数的组合])
例1:
a=rand(2,3,4);
%这是⼀个三维数组,各维的长度分别为:2,3,4
%现在交换第⼀维和第⼆维:
permute(A,[2,1,3]) %变成3* 2* 4的矩阵
例2:
a=rand(2,3,4);
b=permute(a(:,1,:),[1 3 2]);
其中(:,1,:)表⽰取3列中(2,3,4)的第⼀个,[1 3 2]表⽰矩阵变为[2,4,3];matlab数组赋值
reshape() 函数对矩阵的处理很⽅⽅便
语法是 A = reshape(A,m,n); 或者 A = reshape(A,[m,n]);
都是将A 的⾏列排列成m⾏n列。另外 reshape是 按照列取数据的,
例如 A =
1 4 7 10
2 5 8 11
3 6 9 12
A = reshape(A , 2 , 6 )得到的结果就是
1 3 5 7 9 11
2 4 6 8 10 12
顺序看起来貌似变的有些乱了,如果再将A排列成3*4 矩阵,数据的位置还会⼀样么,
A = reshape(A,3,4)
A =
1 4 7 10
2 5 8 11
3 6 9 12
结果是⼀摸⼀样的。其实A 矩阵⽆论如何reshape ,只要最有reshape 成3*4 的 结果就会⼀摸⼀样。- ⽰例(如何将三维数组转换为⼆维)
clc;
clear;
a=rand(4,2,3);
b=permute(a,[2,1,3]);%改变第⼀维和第⼆维,得到2*4*3
c=reshape(b,2,12);%reshape(b,2,3*4),得到2*12
d=permute(c,[2,1])%转换回来,得到12*2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论