ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MATLAB常用函数汇总

2022-11-02 20:05:48  阅读:180  来源: 互联网

标签:minmax 计算 matlab pdist


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:是一种产生标准正态分布的随机数或矩阵的函数。

标签:minmax,计算,matlab,pdist
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有