《第四章Matlab其他函数库》由会员分享,可在线阅读,更多相关《第四章Matlab其他函数库(42页珍藏版)》请在金锄头文库上搜索。
1、MATLAB 其他函数库,1、数据分析函数库,基本的数据分析 max求最大值 sum求元素和 min求最小值 cumsum求累加和 mean求平均值 cumprod求累加积 std求标准差 diff求差分 median求中间元素 sort排序,这些函数的运用规则为:若输入为向量,则对该向量进行运算,若输入为矩阵,则默认情况下将矩阵每一列作为单独的向量进行运算,也可指定维数使其以每一行作为单独的向量进行运算,data= 154 49 83 67; 158 99 81 75; 155 100 68 86; 145 63 75 96; 145 63 75 96; 141 55 65 75; 155
2、56 64 85; 147 89 87 77; 147 96 54 100; 145 60 76 67,基本数据分析例,10名学生的身高及3门课程分数列表,身高,数学,语文,英语,data= 154 49 83 67; 158 99 81 75; 155 100 68 86; 145 63 75 96; 145 63 75 96; 141 55 65 75; 155 56 64 85; 147 89 87 77; 147 96 54 100; 145 60 76 67,基本数据分析例,10名学生的身高及3门课程分数列表,min(data)= 141 49 54 67,max(data)= 15
3、8 100 87 100,mean(data)= 149.2000 73.0000 72.8000 82.4000,median(data)= 147 63 75 81,sum(data)= 1492 730 728 824,最小值,最大值,平均值,中位数,累积和,排序,sort(data)= . .,data= 154 49 83 67; 158 99 81 75; 155 100 68 86; 145 63 75 96; 145 63 75 96; 141 55 65 75; 155 56 64 85; 147 89 87 77; 147 96 54 100; 145 60 76 67,基
4、本数据分析例,10名学生的身高及3门课程分数列表,std(data)= 5.7504 20.4070 10.0421 12.0757,std(data,1)= 5.4553 19.3598 9.5268 11.4560,方差,用于场论的数据分析,cross两矢量的向量积 dot两矢量的数量积,用于场论的数据分析,gradient求梯度(函数某点处的梯度指向函数在该点处变化率最大的方向) 一维情形y=f(x) 例: x=-1:0.2:1; y=x.2; gradient(y,0.2),dx,dy,步长,用于场论的数据分析,二维情形z=f(x,y) 例: x=-2:0.2:2; y=-2:0.2:
5、2; X,Y = meshgrid(x,y); Z = X.2 - Y.2; px,py = gradient(Z,.2,.2);,用于场论的数据分析,del2拉普拉斯算子(梯度的散度) 例: x,y = meshgrid(-4:4,-3:3); z = x.*x+y.*y V = 4*del2(z),用于随机数据分析的函数,1、产生随机数据 unidrnd(N,m,n)/rand(m,n)均匀分布 normrnd(mu,sigma,m,n)/randn(m,n)正态分布 poissrnd(lambda,m,n)泊松分布 exprnd(mu,m,n)指数分布 betarnd(A,B,m,n)贝
6、塔分布 geornd(P,m,n)几何分布 ,直方图,将数据的取值范围划分为若干个区间,然后统计这组数据在每个区间中出现的次数,称为频数,由此得到一个频数表。以数据的取值为横坐标,频数为纵坐标,画出一个阶梯形的图,称为直方图,或频数分布图。,直方图函数: N,X = hist(Y,M) 数组(行、列均可)Y的 频数表 它将区间min(Y),max(Y)等分为M份(缺省时M设定为10),N返回M个小区间的频数,X返回M个小区间的中点。,计算统计量,样本均值Y=mean(X) 样本方差Y=var(X) 样本标准差Y=std(X) 样本自/协方差C=cov(X)/C=cov(X,Y),例:x=nor
7、mrnd(0,4,1,1000); y=normrnd(1,6,1,1000); V=var(x); S=std(x);M=mean(x);C=cov(x,y),滤波,数字滤波 Y = filter(b,a,X) 例: x=randn(1,10000);windowSize = 5; b=ones(1,windowSize)/windowSize;a=1; y = filter(b,a,x); plot(1:length(x),x);hold on; plot(1:length(y),y,r);,傅里叶变换,离散傅里叶变换 X=fft(x,N) 例: t = 0:0.001:0.6; % 时域
8、,采样时间0.001 x = sin(2*pi*50*t)+sin(2*pi*120*t); y = x + 2*randn(size(t); % 给信号添加噪声 plot(1000*t(1:50),y(1:50); Y = fft(y,512); %傅里叶变换, f = 1000*(0:256)/512; % 根据采样时间计算频率 Pyy = Y.* conj(Y) / 512; % 计算信号功率谱 figure; plot(f,Pyy(1:257),2、矩阵分解与变换函数库,1、求矩阵的行列式、秩、逆阵、迹 det(A)行列式 rank(A)矩阵的秩 inv(A)矩阵的逆阵 trace(A
9、)矩阵的迹 例:A=2 9 0 0;0 4 1 4;7 5 5 1;7 8 7 4;,2、矩阵的分解 1) 三角分解把任意方阵分解为一个准下三角方阵和一个上三角方阵的乘积。 例: A=2 9 0 0;0 4 1 4;7 5 5 1;7 8 7 4; l,u=lu(A),2、矩阵分解与变换函数库,2、矩阵的分解 2) 正交分解把任意nm矩阵A分解为一个正交方阵q和一个与A有同样阶数的上三角矩阵r的乘积。 例: A=2 9 0 0;0 4 1 4;7 5 5 1;7 8 7 4; q,r=qr(A),2、矩阵分解与变换函数库,2、矩阵的分解 3) 奇异值分解把任意nm矩阵A分解为三个矩阵u、v、s
10、的乘积。其中u、v为nn阶和mm阶正交矩阵,s则为nm阶的对角阵,对角线上的元素就是矩阵的奇异值。 例: A=2 9 0 0;0 4 1 4;7 5 5 1;7 8 7 4; u,s,v=svd(A),2、矩阵分解与变换函数库,3、矩阵的特征值 e,r=eig(A)给出矩阵A的特征向量矩阵e和特征值矩阵r,它们和矩阵A满足关系:A*e=e*r。r的对角线元素为矩阵A的特征值,e的每列为对应于r相应列特征值的特征向量。 例: A=2 9 0 0;0 4 1 4;7 5 5 1;7 8 7 4; e,r=eig(A),2、矩阵分解与变换函数库,多项式是形如下式的式子: P(x)=a0xn+a1xn
11、-1+an-1x+an 在MATLAB中,多项式用向量表示: Pa0 a1 a2an-1 an 用poly2sym函数可以形象化(符号化)表示以向量形式表示的多项式 例:A=1 2 3;poly2sym(A);,3、多项式函数库,用poly函数生成多项式,矩阵A的特征多项式det(sI-A) 例: A=2 9 0 0;0 4 1 4;7 5 5 1;7 8 7 4;p=poly(A); poly2sym(p,s) 以给定值作为根的多项式 例: p=1 2 3;P=poly(p); poly2sym(P),多项式基本运算,1、多项式的加减运算Matlab没有提供专门进行多项式加减运算的函数,事实
12、上,多项式的加减就是其所对应的系数向量的加减运算。 对于次数相同的多项式,可以直接对其系数向量进行加减运算。 如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用0补足,然后进行加减运算。 例: a=2 -1 0 3;b=2 1; c=a+0 0 b,多项式基本运算,3、多项式相乘conv函数 例:计算多项式 和 的乘积 a=2 0 -1 3;b=2 1;c=conv(a,b) 4、多项式相除deconv函数,结果包括商和余数两部分 例: p=1 0 -2;q=1 -1; k,r=deconv(p,q);,k,r=deconv(p,q),p=conv(q,k)+r,多项式基本运算,5
13、、多项式求导 例:a=1 2 3;c=polyder(a);ploy2sym(c); 6、多项式求值(多项式中的未知数为某个特定值时该多项式的值) 例: a=1 2 3; polyval(a,1) 7、多项式求根 例: p=2 -6 3 0 7; x=roots(p),多项式基本运算,8、多项式拟合p=polyfit(x,y,n),已知N个数据点对(x1,x2)(xN,yN),求解一n次多项式函数 使得该函数能够满足x和y之间的函数关系。拟合的准则为最小二乘法,多项式基本运算,例: x=0:0.1:1; y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,
14、9.48,9.30,11.2; a3=polyfit(x,y,3); xi=0:0.01:1; yi3=polyval(a3,xi); plot(x,y,o,xi,yi3,r);,多项式基本运算,9、多项式插值 y=interp1(x,y,xi,method),已知N个数据点对(x1,x2)(xN,yN) ,求解感兴趣的坐标点xi处的y值 method linear 线性 cubic 三次 cubic spline 三次样条,xi,?,多项式基本运算,例: x=0:0.1:1; y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2; x1=0.07:0.06:0.5; y1=interp1(x,y,x1) plot(x,y,x,y,o,x1,y1,*),4、数值积分函数库,定积分函数 quad(函数名,初值x0,终值xf) 例:求下列函数在x=12之间的定积分 步骤1:先定义一个函数hump,并存为 文件hump.m function y=hump(x) y=1./(x-.3).2+.1)+1./(x-.9).2+.04)-6 步骤2:s