目录
1. Matlab find函数
find函数用于返回所需要元素的所在位置 (位置的判定:在矩阵中,第一列开始,自上而下,依次为1,2,3…,然后再从第二列,第三列依次往后数)
find(A)返回矩阵A中非零元素所在位置
>> A = [1 0 4 -3 0 0 0 8 6];
>> X = find(A)
X =
1 3 4 8 9
find(A>5)返回矩阵A中大于5的元素所在位置
>> find(A>5)
ans =
8 9
[i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,列j,和元素的值v(按所在位置先后顺序输出)
>> A=[3 2 0; -5 0 7; 0 0 1];
>> [i,j,v]=find(A)
i =
1
2
1
2
3
j =
1
1
2
3
3
v =
3
-5
2
7
1
find(A>m,4)返回矩阵A中前四个数值大于m的元素所在位置
I = find(X) returns a vector containing the linear indices of each nonzero element in array X.
I = find(X,k) returns the first k indices corresponding to the nonzero elements in X.
I = find(X,k,direction) specifies the search direction as either ‘first’ or ‘last’. For example, find(X,k,’last’) finds the last k nonzero elements in X.
[row,col] = find(___) returns the row and column subscripts of each nonzero element in array X using any of the previous syntaxes.
[row,col,v] = find(___) also returns vector v that contains the nonzero elements of X.
Matlab 部分使用技巧
- Matlab numel(A)函数会返回A中的元素个数,相当于prod(size(A))。prod是计算数组中所有元素乘积的函数。
- Matlab中A=[1 2;3 4;5 6],其中A(1)=1,A(2)=3。要表示行向量的话A(1,:)才表示行向量
- Matlab计算矩阵每一列的均值: 对于矩阵A,mean(A)可以表示每一列的平均值;mean(A’)可以表示每一行的平均值
-
Matlab randperm(size(X,1))表示随机打乱矩阵X的行数,其中randperm(n)可以随机打乱一个数字序列,表示把1到n这些数随机打乱得到新的数字序列
A = [1, 2, 3; 4, 5, 6; 7, 8, 9; 10, 11, 12] rowrank = randperm(size(A, 1)); % 随机打乱矩阵的行数 B = A(rowrank, :) % 一个可能的输出结果: A = 1 2 3 4 5 6 7 8 9 10 11 12 B = 1 2 3 7 8 9 4 5 6 10 11 12
- Matlab A(1:3:end),A(1:end)这样都很方便。所以需要注意end的用法,表示最后一个元素的位置
3. Matlab std函数
- std(A): std(A)函数求解的是最常见的标准差,此时除以的是N-1
- std(A,flag): 这里flag代表的是用哪一个标准差函数,如果取0,则代表除以N-1,如果是1代表的是除以N
- std(A,flag,dim): 第三个参数代表的是按照列求标准差还是按照行求标准差,std(A,1,1)代表的是按照列求标准差,std(A,1,2)代表的是按照行求标准差