Java教程

MATLAB常用函数汇总

本文主要是介绍MATLAB常用函数汇总,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

minmax:用于获取数组中每一行的最小值和最大值。

其中magic(n)表示生成一个n*n的矩阵,其矩阵元素是由整数1到n^2组成的并且任何行任何列的和都相等。

cumsum:输入矩阵的每个元素对应的列向上(行向左)求和矩阵。

格式一:B=cumsum(A),这种用法返回数组不同维数的累加和。

格式二:B=cumsum(A,dim),这种调用格式返回A中由标量dim所指定的维数的累加和。例如:cumsum(A,1)返回的是沿着第一维(各列)的累加和,cumsum(A,2)返回的是沿着第二维(各行)的累加和。

dsolve:用于求常微分方程组的精确解,也称为常微分方程的符号解。如果没有初始条件或边界条件,则求出通解;如果有,则求出特解。

格式:y=dsolve(eq1,eq2,...,cond1,cond2,...,name)。其中,‘eq1,eq2,…’:表示微分方程或微分方程组;’cond1,cond2,…’:表示初始条件或边界条件;‘Name’:表示变量。没有指定变量时,matlab默认的变量为t;

例如求解:dy/dx=3x^2。(没有初始条件)

若加上初值条件:当x=0时y=2:

subs:表示将符号表达式中的某些符号变量替换为指定的新的变量。

主要有三种格式(参考:):

R = subs(S, new) 利用new的值代替符号表达式S中的默认符号。 R = subs(S) 用由调用函数或Matlab工作空间中获取的值替代了在符号表达式S中的所有当前的变量。 R = subs(S, old, new) 利用new的值代替符号表达式中old的值。old为符号变量或是字符串变量名。new是一个符号货数值变量或表达式。也就是说R = subs(S,old,new)在old=new的条件下重新计算了表达式S。这种替换第一次作为Matlab表达式被尝试,如果所有在new中的数值是双精度的,计算是以双精度算术运算进行的。讲new值转化为符号可以验证符号货变量的运算精度。

注意:这里的old和new不限于单变量,也可以是多变量(数组)。

digits和vpa是MATLAB用来控制精度的两个函数,其中digits用于规定运算精度。例如digits(10)表示规定运算精度为10位有效数字,但是在实际编程中,有些运算可能需要控制精度。vpa就是用于解决这个问题的:

注意:vpa函数对其中每一个运算都控制精度,并非只控制结果!

diff:用于求导数或差分。

三种格式如下:

diff(A):相邻元素的差分(从下到上)。

diff(A,n,m),表示求A的n阶差分,其中m=1表示列差分,m=2表示行差分。

dist(A,B):计算A中每个行向量与B中每个列向量之间的欧式距离。A的行向量维数必须等于B的列向量维数。

mandist(A,B):计算A中每个行向量与B中每个列向量之间的绝对距离。A的行向量维数必须等于B的列向量维数。

若样本X是m个n维行向量所组成的矩阵,则:

pdist(X):样本X中各n维向量的欧氏距离

pdist(X,cityblock):各n维向量的绝对距离

pdist(X,minkowski):闵可夫斯基距离

pdist(X,mahal):各n维向量的马氏距离

nonzeros(A):找出矩阵A中的全部非零元素并组成列向量。

union(a,b):表示对两个子集取并运算。

squareform(y):在我们对数据集a求两两之间的距离后,例如调用了pdist(a),将得到一个具有M*(M-1)/2个元素的行向量,用squareform把这个行向量转换成方阵形式,方阵中<i,j>位置的数值就是X中第i和第j点之间的距离。

linkage:调用格式为z=linkage(y),使用最短距离算法生成具层次结构的聚类树。输入矩阵Y为pdist函数输出的距离行向量。若指定生成规则时需要传入第二个参数:z=linkage(y,method)。

其中第二个参数的对应关系:{‘single’:最短距离}、{‘complete’:最大距离}、{‘average’:平均距离}、{‘centroid’:重心距离}、{‘ward’:离差平方和方法}。

zsore:对数据矩阵进行标准化处理,其处理方法为:

其中分子中的减数为矩阵每一列的平均值,分母为每一列的标准差。

randn:是一种产生标准正态分布的随机数或矩阵的函数。

这篇关于MATLAB常用函数汇总的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!