您的位置:首页 > 编程语言 > MATLAB

目前遇到的matlab的一些函数用法

2017-02-17 21:38 288 查看
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 try
catch
% what to do if an error occurs
end


5.matlab的取整函数有fix (只取整数部分) , floor (小于该数的最大整数) , ceil (大于该数的最小整数) , round (四舍五入取整)。

例如:
fix(3.4)=3 , fix(3.4)=3
floor(3.4)=3 , floor(3.6)=3
ceil(3.4)=4 , ceil(3.6)=4
round(3.4)=3 , round(3.6)=4
且round(q,k) 可以对q作保留小数点后k位的四舍五入


6.在matlab中,对于一个方阵A,A^2指矩阵相乘,A.^2则是指A的每个元素都平方。在python中, * 表示矩阵点乘,numpy.dot表示矩阵相乘。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: