当前位置:
文档之家› Matlab第5章数据处理与多项式计算
Matlab第5章数据处理与多项式计算
【例5.9】表5.3所示为我国0~6个月婴儿的体重、身 长参考标准,用3次样条插值分别求得婴儿出生后半 个月到5个半月每隔1个月的身长、体重参考值。
表5.3 我国婴儿体重、身长计量表
出生 身长(cm) 50.6 体重(kg) 3.27 1月 56.5 4.97 2月 59.6 5.95 3月 62.3 6.73 4月 64.6 7.32 5月 65.9 7.70 6月 68.1 8.22
2.相关系数
相关系数用来衡量两组数据之间的线性相关程度。 corrcoef函数用于求数据的相关系数矩阵。 ● corrcoef(X,Y):求向量X和Y的相关系数。 ● corrcoef(X):返回从矩阵X形成的一个相关系 数矩阵。它把矩阵X的每列作为一个变量,然后 求它们的相关系数。
【例5.7】随机抽取15名健康成人,测定血液的凝血 酶浓度及凝血时间,分析凝血酶浓度与凝血时间之间 的相关性。 命令如下: X=[1.1,1.2,1.0,0.9,1.2,1.1,0.9,0.6,1.0,0.9,1.1,0.9,1.1, 1,0.7]'; Y=[14,13,15,15,13,14,16,17,14,16,15,16,14,15,17]'; R=corrcoef(X,Y) R= 1.0000 -0.9265 -0.9265 1.0000 求得的R说明凝血酶浓度与凝血时间之间的相关程度较 高。
5.1.3 平均值和中值
数据序列的平均值指的是算术平均值。中值是指在数据序列中 其值的大小恰好处在中间的元素。例如: 数据序列 2,5,7,9,12的中值为7 如果数据为偶数个,则中值等于中间的两项之平均值。例如, 数据序列 2,5,6,7,9,12中,处于中间的数是6和7,故 其中值为此两数之平均值6.5。 求数据序列平均值的函数是mean,mean函数的调用格式如下。 ● mean(A):如果A是一个向量,则返回向量的算术平均值。如 果A是一个矩阵,则返回一个行向量,其第i个元素是A的第i列 的算术平均值。 ● mean(A,dim):当dim为1时,该函数等同于mean(A);当dim 为2时,返回一个列向量,其第i个元素是A的第i行的算术平均 值。 求数据序列中值的函数是median,其用法和mean完全相同。
【例5.2】已知 , 求矩阵x、y所有同一位置上的较大元素构成的 新矩阵p。
45 73 34 84
443 x 67
43 43
65 y 61
34 326
x=[443,45,43;67,34,-43]; y=[65,73,34;61,84,326]; p=max(x,y) p= 443 73 43 67 84 326
5.1.6 排序
MATLAB提供了对向量X进行排序的函数sort(X), 函数返回一个对X中的元素按升序排列的新向量。 sort函数也可以对矩阵A的各列或各行重新排序, 其调用格式为 [Y,I]=sort(A,dim,mode) 其中Y是排序后的矩阵,而I记录Y中的元素在A中 的位置。dim指明对A的列还是行进行排序,若 dim = 1,则按列排;若dim = 2,则按行排。 mode指明按升序还是降序排序,'ascend'为升序, 'descend'为降序。dim默认取1,mode默认取 'ascend'。
2
32
64
5.1.5 标准方差与相关系数
1.求标准方差 方差描述了一组数据波动的大小,方差越小,数据波 动越小。在MATLAB中,提供了计算数据序列的标 准方差的函数std。对于向量X,std(X)返回一个标准 方差。对于矩阵A,std(A)返回一个行向量,它的各 个元素便是矩阵A各列或各行的标准方差。std函数的 一般调用格式为: Y=std(A,flag,dim) 其中flag取0或1,当flag = 0时,按σ1所列公式计算 标准方差;当flag = 1时,按σ2所列公式计算标准方 差。dim取1或2,当dim = 1时,求各列元素的标准 方差;当dim = 2时,则求各行元素的标准方差。默 认flag = 0,dim = 1。
【例5.6】某次射击选拔比赛中小明与小华的10次射击 成绩(单位:环)记录在矩阵a中,试比较两人的成绩。
a=[7,4,9,8,10,7,8,7,8,7;7,6,10,5,9,8,10,9,5,6]'; mean(a) ans = 7.5000 7.5000 std(a) ans = 1.5811 1.9579 两人成绩的平均值相同,但小明的成绩的标准方差较小, 说明小明的成绩波动较小,成绩更稳定。
2 10 s 1 2 2 ... 2 【例5.5】求
的值。
命令如下: x=[1,ones(1,10)*2] x= 1 2 2 2 2 2 2 2 2 2 y=cumprod(x) y= Columns 1 through 7 1 2 4 8 16 Columns 8 through 11 128 256 512 1024 s=sum(y) s= 2047
【例5.8】对二维矩阵 1
命令如下: A=[1,-8,5;4,12,6;13,7,-13]; sort(A,2,‘descend’) %对A的每行按降序排序 Ans= 5 1 -8 12 6 4 13 7 -13 [X,I]=sort(A) %对A按列排序,并将每个元素所在行号送矩阵I X= I= 1 -8 -13 1 1 3 4 7 5 2 3 1 13 12 6 3 2 2
数据序列求积的函数是prod,其用法和sum完全 相同。
【例5.3】已知 ,求矩阵A的每 行元素的成绩和全部元素的乘积。
10 11
1 A 5 9
2 6
3 7
4 8 12
A=[1:4;5:8;9:12]; S=prod(A,2) %求每行元素的乘积 S= 24 1680 11880 P=prod(S) %求全部元素的乘积,即12! P= 479001600
第5章 数据处理与多项式计算
Hale Waihona Puke 【本章学习目标】● ● ● ● 掌握数据统计和分析的方法。 掌握数值插值与曲线拟合的方法及其应用。 掌握快速傅立叶变换的应用方法。 掌握多项式的常用运算。
5.1 数据统计处理
5.1.1 最大值和最小值 1.求最大值和最小值 ● max(A):如果A是向量,则返回向量A的最大值。如果A 中包含复数元素,则按模取最大值。如果A是矩阵,则返 回一个行向量,向量的第i个元素是矩阵A的第i列上的最大 值。 ● [Y,U] = max(A):如果A是向量,则返回向量A的最大值存 入Y,最大值的序号存入U。如果A中包含复数元素,则按 模取最大值。如果A是矩阵,则Y向量记录A的每列的最大 值,U向量记录每列最大值的行号。 ● max(A,[],dim):仅用于矩阵。dim取1或2。dim取1时, 该函数和max(A)完全相同;dim取2时,该函数返回一个 列向量,其第i个元素是A矩阵的第i行上的最大值。
【例5.1】分别求矩阵 54 90 列和各行元素中的最大值。 23
86 32 12
453 64 71
45 54 18
中各
x=[54,86,453,45;90,32,64,54;-23,12,71,18]; [y,l]=max(x) %求矩阵x中各列元素的最大值及其这些元素的行下标 y= 90 86 453 54 l= 2 1 1 2 y=max(x,[ ],2) %命令中dim=2,故查找操作在各行中进行 y= 453 90 71
5.2.1 一维数据插值
若已知的数据集是平面上的一组离散点集,即被插值函数是一个单变 量函数,则数值插值问题称为一维插值。在MATLAB中,实现插值的 函数是interp1,其调用格式为 Y1=interp1(X,Y,X1,'method') 函数根据X、Y的值,计算函数在X1处的值。X、Y是两个等长的已知 向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值 的点,Y1是一个与X1等长的插值结果。method是插值方法,允许的 取值如下: ● 'linear':线性插值。线性插值是默认的插值方法。它是把与插值点靠 近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。 ● 'nearest':最近点插值。根据已知插值点与已知数据点的远近程度进 行插值。插值点优先选择较近的数据点进行插值操作。 ● 'cubic':3次多项式插值。根据已知数据求出一个3次多项式,然后根 据该多项式进行插值。 ● 'spline':3次样条插值。所谓3次样条插值,是指在每个分段(子区 间)内构造一个3次多项式,使其插值函数除满足插值条件外,还要 求在各节点处具有光滑的条件。
% 偶数个元素
5.1.4 累加和与累乘积
所谓累加和或累乘积,是指从数据序列的第1元素开始直 到当前元素进行累加或累乘,作为结果序列的当前元素值。 在MATLAB中,使用cumsum和cumprod函数求得向量 和矩阵元素的累加和与累乘积向量。cumsum函数的调用 格式如下。 ● cumsum(A):如果A是一个向量,则返回向量的累加和。 如果A是一个矩阵,则返回一个矩阵,其第i列是A的第i列 的累加和向量。 ● cumsum(A,dim):当dim为1时,该函数等同于 cumsum(A);当dim为2时,返回一个矩阵,其第i行是A 的第i行的累加和向量。 求累乘积的函数是cumprod,其用法和cumsum完全相 同。
5.1.2 求和与求积
数据序列求和的函数是sum。sum函数的调用格 式如下。
–● sum(A):如果A是一个向量,则返回向量各元 素的和。如果A是一个矩阵,则返回一个行向量,其第i 个元素是A的第i列的元素和。 –● sum(A,dim):当dim为1时,该函数等同于 sum(A);当dim为2时,返回一个列向量,其第i个元 素是A的第i行的各元素之和。