meshgrid
meshgrid是MATLAB中用于生成网格采样点的函数。
语法
[X,Y] = meshgrid(x,y)
解释:输出X的每一行的数值都是复制的x的值;输出Y的每一列的数值都是复制的y的值。
[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
示例
x=-3:1:3;y=-2:1:2;
[X,Y]= meshgrid(x,y);
这里meshgrid(x,y)的作用是分别产生以向量x为行,向量y为列的两个大小相同的矩阵,其中x的行是从-3开始到3,每间隔1记下一个数据,并把这些数据集成矩阵X;同理y的列则是从-2到2,每间隔1记下一个数据,并集成矩阵Y。即
X=
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
Y =
-2 -2 -2 -2 -2 -2 -2
-1 -1 -1 -1 -1 -1 -1
0 0 0 0 0 0 0
1 1 1 1 1 1 1
2 2 2 2 2 2 2
sub2ind
sub2ind该函数用于把数组中元素下标转换为该元素在数组中对应的索引值。
语法
linearInd = sub2ind(matrixSize, rowSub, colSub)
这种用法适用于二维数组(在MATLAB中,一个空矩阵[]、一个数、一个向量都是二维的)。其中matrixSize是矩阵的尺寸,通常用size函数获取。rowSub、colSub则是要访问的元素的对应行列下标,返回值就是这个元素在这个矩阵中的索引值。
示例
A = [1 2 3; 4 5 6];
--> sub2ind(size(A), 2, 2)
ans =4
--> sub2ind(size(A), 2, 1)
ans = 2
--> A(2)
ans = 4
--> A(4)
ans = 5
permute
permute函数按指定的向量来重新排列一个数组。。
语法
B = permute(A,order)
按照向量order指定的顺序重排A的各维。B中元素和A中元素完全相同。但由于经过重新排列,在A、B访问同一个元素使用的下标就不一样了。order中的元素必须各不相同。
示例
A = [1,2;4,5]
-->A =
1 2
4 5
permute(A,[2,1])
-->ans =
1 4
2 5