
matlab学习资料:第四章 matlab数据分析.ppt
33页第四章第四章 MATLAB数据分析数据分析1.1.数据统计处理数据统计处理2.2.数据插值数据插值3.3.曲线拟合曲线拟合1.数据统计处理函数函数说明说明max返回数据集最大值min返回数据集最小值mean计算数据集平均值median返回数据集中位值var计算数据集方差std计算数据集均方差基础统计分析函数基础统计分析函数当这些参数的输入参数是一维数组时,则以该一维数组当这些参数的输入参数是一维数组时,则以该一维数组为数据集进行统计计算若输入参数是二维数组时,则为数据集进行统计计算若输入参数是二维数组时,则以二维数组每一列为一个数据集分别进行统计分析以二维数组每一列为一个数据集分别进行统计分析1.数据统计处理例例 基础数据统计分析基础数据统计分析A=randn(100,5);mx,mxrow=max(A) %求各列数据的最大值和所在行号运行结果:mx= 2.3672 1.8705 2.6903 2.1704 2.7316mxrow=82 39 93 67 56mmx=max(A(:) %求所有数据的总体最大值运行结果: mmx=2.7316mx2=max(A(:,2) %求第二列数据最大值m2x=max(A(2,:) %求第二行数据(5个数)的最大值其他函数与此类似。
其他函数与此类似1.数据统计处理设设X是一个向量,是一个向量,A是一个矩阵,函数的调用格式为:是一个矩阵,函数的调用格式为:sum(X):返回向量:返回向量X各元素的和各元素的和prod(X):返回向量:返回向量X各元素的乘积各元素的乘积sum(A):返回一个行向量,以二维数组的每一列为一个:返回一个行向量,以二维数组的每一列为一个数据集进行求和数据集进行求和sum(A,dim):当:当dim为为1时,对列求和,与时,对列求和,与sum(A)相同;相同;当当dim为为2时,对行求和时,对行求和求和与求积求和与求积1.数据统计处理 B=randn(2,5); sum(B)ans = -0.8317 -1.9851 0.1020 1.6615 2.2484 sum(B,1)ans = -0.8317 -1.9851 0.1020 1.6615 2.2484 sum(B,2)ans = -1.3683 2.5635例例 矩阵求和矩阵求和1.数据统计处理累计和累计和cumsum(x) 返回x中元素累计和的向量,即第2个元素是x 中前2个元素之和,以此类推cumsum(A) 返回一个与A同样大小的矩阵,他的列是A中 列的累计和。
cumsum(A,dim) 给出A中dim维累计和1.数据统计处理 BB = -1.4440 -1.3235 -0.1461 -0.0766 1.6220 0.6123 -0.6616 0.2481 1.7382 0.6264cumsum(B)ans = -1.4440 -1.3235 -0.1461 -0.0766 1.6220 -0.8317 -1.9851 0.1020 1.6615 2.2484 cumsum(B,2)ans = -1.4440 -2.7675 -2.9136 -2.9903 -1.3683 0.6123 -0.0492 0.1988 1.9370 2.56351.数据统计处理corrcoef(X):返回从矩阵X形成的一个相关系数矩阵此相关系数矩阵的大小与矩阵X一样它把矩阵X的每列作为一个变量,然后求它们的相关系数corrcoef(X,Y):在这里,X,Y是向量,它们与corrcoef(X,Y)的作用一样相关系数相关系数2.数据插值p 科研或工程中,常有这样的问题:给一批数据点,需确定满足特定要求的曲线或曲面如果要求所求曲线(面)通过所给所以数据点,这就是插值问题。
插值问题p 当数据较多,插值函数是一个次数很高的函数,比较复杂,同时,给定的数据一般是由观察测量所得,往往带有随机误差,因而,求曲线(面)通过所有数据点就既不现实也不必要如果不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,可得到更简单实用的近似函数,这就是数据拟合数据拟合2.数据插值x,y数据点的横纵坐标,数据点的横纵坐标,x必须单调必须单调cx需要插值的横坐标数据(或数组),需要插值的横坐标数据(或数组), cx不能超出不能超出x的范围的范围method可选参数可选参数interp1(x,y,cx,method)Nearest:最最邻邻近点插近点插值值Linear:线线性插性插值值Spline:线线性性样样条插条插值值cubic :三次插:三次插值值一维插值一维插值2.数据插值例:例:在在12h内,每隔内,每隔1h测测量一次温度,温度依次量一次温度,温度依次为为:5,8,9,15,25,29,31,30,22,25,27,24每隔1/10h估估计计一次温一次温度度值值hours=1:12;temps=5 8 9 15 25 29 31 30 22 25 27 24;h=1:.1:12;t=interp1(hours,temps,h,spline);plot(hours,temps,+,h,t,hours,temps,r)xlabel(Hour),ylabel(Degrees)2.数据插值1.插插值值基点基点为为网格网格节节点点cz=interp2(x,y,z,cx,cy,method)x,y自变量,自变量,x,y必须单调递增必须单调递增cx,cy给定网格点的横坐标、纵坐标数给定网格点的横坐标、纵坐标数据(或数组),据(或数组),一个行向量,一个列向量一个行向量,一个列向量Z是是mn维矩阵维矩阵method可选参数可选参数Nearest:最最邻邻近点插近点插值值Linear:线线性插性插值值Spline:三次:三次样样条插条插值值cubic :三次插:三次插值值二维插值二维插值2.数据插值2.插插值值基点基点为为散乱散乱节节点点cz=griddata(x,y,z,cx,cy,method)x,y自变量,自变量,x,y必须单调递增必须单调递增cx,cy给定节点的横坐标、纵坐标数据给定节点的横坐标、纵坐标数据(或数组),(或数组),一个行向量,一个列向量一个行向量,一个列向量Z是是mn维矩阵维矩阵method可选参数可选参数Nearest:最最邻邻近点插近点插值值Linear:线线性插性插值值V4:MATLAB提供的方法提供的方法cubic :三次插:三次插值值二维插值二维插值2.数据插值例:例:测得平板测得平板53网格点处的温度依次为:网格点处的温度依次为:82 81 80 82 8479 63 61 65 8184 84 82 85 86作出平板表面温度分布曲面。
作出平板表面温度分布曲面x=1:5;y=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(x,y,temps)2.数据插值xi=1:.2:5;yi=1:.2:3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi)2.数据插值例:例:在某海域在某海域测测得一些点(得一些点(x,y)处处的水深的水深z,由下表,由下表给给出,出,在矩形区域(在矩形区域(75,200)(50,150)内画出海底曲面的)内画出海底曲面的图图形x129140103.588185.5195105.5157.5107.57781162162117.5y7.5141.52314722.5137.585.5-6.5-81356.5-66.584-33.5z48686889988949x=129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5;y=7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5;z=-1*4 8 6 8 6 8 8 9 9 8 89 4 9;cx=75:.5:200;cy=-50:.5:150;cz=griddata(x,y,z,cx,cy,cubic);meshz(cx,cy,cz)当插值点落在已知数据集外当插值点落在已知数据集外面时,叫外插,一般对此些面时,叫外插,一般对此些点赋值为点赋值为NaN或或0.2.数据插值2.数据插值某观测站测得某日某观测站测得某日6:00时至时至18:00时之间每隔时之间每隔2小时的小时的室内外温度室内外温度(),用,用3次样条插值分别求得该日室内外次样条插值分别求得该日室内外6:30至至17:30时之间每隔时之间每隔2小时各点的近似温度小时各点的近似温度()。
练习练习3.曲线拟合(1). 多项式曲线拟合多项式曲线拟合: polyfit.y0=polyval(p, x0)p=polyfit(x,y,m)其中其中, x, y为已知数据点向量为已知数据点向量, 分别表示横分别表示横,纵坐纵坐标标, m为拟合多项式的次数为拟合多项式的次数, 结果返回结果返回m次拟合次拟合多项式系数多项式系数, 从高次到低次存放在向量从高次到低次存放在向量p中中.可求得多项式在可求得多项式在x0处的值处的值y0.用用matlab进行进行数据拟合数据拟合3.曲线拟合例例1 已知观测数据点如表所示已知观测数据点如表所示xy0-0.4470.11.9780.23.280.36.160.47.080.57.340.67.660.79.560.89.480.99.3111.2分别用分别用3次和次和6次多项式曲线拟合这些数据点次多项式曲线拟合这些数据点.x=0:0.1:1y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2plot(x,y,k.,markersize,25)axis(0 1.3 -2 16)p3=polyfit(x,y,3)p6=polyfit(x,y,6)编写编写Matlab程序如下程序如下:3.曲线拟合t=0:0.1:1.2;s=polyval(p3,t);s1=polyval(p6,t);hold onplot(t,s,r-,linewidth,2)plot(t,s,b-,linewidth,2)gridx=0:0.1:1;y=-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.3,11.2;plot(x,y,k.,markersize,25);axis(0 1.3 -2 16);p3=polyfit(x,y,3);p6=polyfit(x,y,6);3次和次和6次效果一样,所以曲线重合在一起了。
次效果一样,所以曲线重合在一起了3.曲线拟合例例2 一个一个15.4cm30.48cm的混凝土柱在加压实验中的应的混凝土柱在加压实验中的应力力-应变关系测试点的数据如表所示应变关系测试点的数据如表所示1.552.472. 933. 03已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述, 即假设即假设式中式中, 表示应力表示应力, 单位是单位是 N/m2; 表示应变表示应变.2.893.曲线拟合已知应力已知应力-应变关系可以用一条指数曲线来描述应变关系可以用一条指数曲线来描述, 即假设即假设式中式中, 表示应力表示应力, 单位是单位是 N/m2; 表示应变表示应变.解解 选取选取指数函数指数函数作拟合时作拟合时, 在拟合前需作变量代换在拟合前需作变量代换, 化为化为 k1, k2 的线性函数的线性函数.于是于是,令令即即3.曲线拟合在命令窗口输入在命令窗口输入:x=500*1.0e-6 1000*1.0e-6 1500*1.0e-6 2000*1.0e-6 2375*1.0e-6y=3.103*1.0e+3 2.465*1.0e+3 1.953*1.0e+3 1.517*1.0e+3 1.219*1.0e+3z=。












