1.matlab的默认维度是列,且设置为dim=1,所以一些库函数对矩阵的操作是按列向量来的,比如,对于矩阵data,sum(data,1)与sum(data)的结果是一致的,对data的每一列元素求和,得到的是一个行向量,而sum(data,2)则是按行求和,得到的是一个列向量。
2.平常遇到的一些函数
find函数: Input:find([1,2,0,0,5,7,0]) Out:[1,2,5,7] 返回非零元素所在的下标
ismember函数:ismember(A,k) Input:ismember([1,2,1,1,3,5,1,7],1) Out:[1,0,1,1,0,0,1,0] 若A中的元素与k相等,则返回1,否则返回零,得到一个与A的维度相同的数据
eig函数: 对于[V,D]=eig(A) 返回的V表示A的各个特征向量构成的矩阵, 返回的D表示A的特征值构成的一个对角矩阵, A、V、D的维度都是一样的。 A*V=V*D
对于[V,D]=eig(A,B) 返回的V、D也是广义的特征向量和特征值 V、D、A、B的维度也都是一样的 A*V=B*V*D
norm函数:计算欧式距离 用法:n=norm(A,p)
1.如果A是一个向量,A=[-2,3,1] 则norm(A)与norm(A,2)的结果是一样的 norm(A,1)=|-2|+|3|+|1|=6
2.如果A是一个矩阵 A= 2 0 1 1 1 0 3 3 0 则norm(A)的结果是A的最大奇异值,与norm(A,2)的结果一样。 norm(A,1)返回A中最大列和
3.numel(a)返回的结果是数组a里面元素的个数。在python中,则是a.size
4.matlab中try…catch…end,可以使得出错的代码不影响后面代码的继续执行,也可以检查、排查、解决程序的一些错误,增强代码的鲁棒性和可靠性。
语法:try % the statements you wish to trycatch % what to do if an error occursend5.matlab的取整函数有fix (只取整数部分) , floor (小于该数的最大整数) , ceil (大于该数的最小整数) , round (四舍五入取整)。
例如:fix(3.4)=3 , fix(3.4)=3floor(3.4)=3 , floor(3.6)=3ceil(3.4)=4 , ceil(3.6)=4round(3.4)=3 , round(3.6)=4且round(q,k) 可以对q作保留小数点后k位的四舍五入6.在matlab中,对于一个方阵A,A^2指矩阵相乘,A.^2则是指A的每个元素都平方。在python中, * 表示矩阵点乘,numpy.dot表示矩阵相乘。
新闻热点
疑难解答