(一)數據處理統計
一、最大值和最小值
1、求向量的最大值和最小值
y=max(X); %返回向量X的最大值存入y,如果X中含有復數則按模最大的存入y
[y,I]=max(X);%返回向量X的最大值存入y,如果X中含有復數則按模最大的存入y;最大值的序號存入I。
求最小值min的用法與max完全相同。
2、求矩陣的最大值和最小值
max(A); %返回一個行向量,向量的第i個元素是矩陣A的第i列上的最大值 [Y,U]=max(A); %返回行向量A和U,Y向量記錄A的每列的最大值,Y記錄每列的最大值的序號。 max(A,[],dim); %dim取1時,就跟max(A)完全相同,dim取2時,函數返回一個列向量,其第i個元素是A矩陣的第i行上的最大值。
3、兩個矩陣或矩陣對應元素的比較
U=max(A,B); %A,B是兩個同型的向量或矩陣,結果U是與A,B同型的向量或者矩陣,U的每個元素等於A,B對應元素的最大值。
U=max(A,n); %n是一個標量,結果U是與A同型的向量或者矩陣,U的每個元素等於A對應元素和n的較大值。
二、求和與求積
sum(X); %返回向量X各元素的和。 prod(X); %返回向量X各元素的乘積。 sum(A); %返回一個行向量,其第i個元素是A的第i列的元素和 prod(A); %返回一個行向量,其第i個元素是A的第i列的元素乘積 sum(A,dim); %當dim=1時,與sum(A)相同,dim=2時,返回一個列向量,其第i個元素是A的第i行各元素之和。
prod(A,dim); %當dim=1時,與sum(A)相同,dim=2時,返回一個列向量,其第i個元素是A的第i行各元素之乘積。
三、平均值和中值
mean(X); %返回向量X的算術平均值 median(X); %返回向量X的中值 mean(A); %返回一個行向量,其第i個元素是A的第i列的算術平均值 median(A); %返回一個行向量,其第i個元素是A的第i列的中值。 mean(A,dim); %dim=1;與mean(A)相同,dim=2時,返回一個列向量,其第i個元素是A的第i行的算術平均值。 median(A,dim); %dim=1;與median(A)相同,dim=2時,返回一個列向量,其第i個元素是A的第i行的中值。
四、累加和與累乘和
cumsum(X); %返回向量X累加和向量 cumprod(X); %返回向量X累乘積向量 cumsum(A); %返回一個矩陣,其第i列是A的第i列的累加和向量 cumprod(A); %返回一個矩陣,其第i列是A的第i列的累乘積向量 cumsum(A,dim); %dim=1時,等同於cumsum(A);dim=2時,返回一個矩陣,其第i行是A的第i行的累加和向量。 cumprod(A,dim);%dim=1時,等同於cumprod(A);dim=2時,返回一個矩陣,其第i行是A的第i行的累乘積向量。
五、標准方差和相關系數
1、標准方差
(1)樣本標准方差:
(2)總體標准方差:
(3)MATLAB封裝方法:
Y=std(A,flag,dim); %A是向量時,返回一個標准方差。A是矩陣時,返回一個行向量,它的各個元素便是矩陣A各列的標准方差。 %dim=1,取各列的標准方差,dim=2時,取各行的標准方差。 %flag=0,取樣本標准方差。flag=1,取總體標准方差 %flag=0,dim=1,為缺省默認值。
2、相關系數
(1)定義:
(2)MATLAB封裝方法:
corrcoef(X); %返回從矩陣X形成的一個相關系數矩陣,此系數矩陣的大小與X相同,每一列為當前列與每一列的相關系數的值。
corrcoef(X,Y);%在這里X,Y為向量,與corrcoef(X,Y)的作用相同。
六、排序
[Y,I]=sort(A,dim);%dim=1對列排序,dim=2對行進行排序。Y為排序后的矩陣,I記錄Y中元素在A的位置。 %sort函數為升序排序 sort(A); %對A的每列升序排序; -sort(-A);%對A的每列降序排序;
(二)數據插值
一、一維數據插值
Y1=interp1(X,Y,X1,'method');
%X,Y是已知的兩個等長的向量,分別描述采樣點和樣本值。X1為一個向量或者標量,描述欲插值的點。Y1是一個X1等長的插值的結果 %method為插值方法: %linear:線性插值,默認的插值方法。把與插值點靠近的兩個數據點用直線連接,然后在直線上選取對應插值點的數據。 %nearest:最近點插值,根據已知插值點與已知數據點的遠近程度進行查插值。插值點有限選擇比較近的數據點進行插值操作。 %cubic:三次多項式插值,根據已知數據求出一個三次多項式,然后根據該多項式進行插值 %spline:三次樣條插值,在每個分段區間內構造一個三次多項式,使得其插值函數滿組成插值條件外,還要求在各節點處具有光滑的條件。
其中三次樣條插值的效果最好,然后MATLAB中有一個專門用於三次樣條插值的方法:
Y1=spline(X,Y,X1);
一個demo:
X=6:2:18; Y=[18,20,22,25,30,28,24]; X1=6.5:1:18.5; subplot(2,2,1); plot(X,Y,'b'); hold on; Y1=interp1(X,Y,X1,'linear'); plot(X1,Y1,'r'); title('linear'); subplot(2,2,2); plot(X,Y,'b'); hold on; Y1=interp1(X,Y,X1,'nearest'); plot(X1,Y1,'r'); title('nearest'); subplot(2,2,3); plot(X,Y,'b'); hold on; Y1=interp1(X,Y,X1,'cubic'); plot(X1,Y1,'r'); title('cubic'); subplot(2,2,4); plot(X,Y,'b'); hold on; Y1=interp1(X,Y,X1,'spline'); plot(X1,Y1,'r'); title('spline');
可以看出最好的就是三次樣條插值以及三次插值。
二、二維數據插值
Z1=interp2(X,Y,Z,X1,Y1,method');
調用方法和格式都與一位數據插值相同。
然后直接上個demo
x=0:2.5:10; h=[0:30:60]'; T=[95,14,0,0,0 88,48,32,12,6 67,64,54,48,41]; xi=[0:0.1:10]; hi=[0:60]'; TI=interp2(x,h,T,xi,hi); surf(xi,hi,TI); shading interp;
(三)曲線擬合
[P,S]=polyfit(X,Y,m)
產生一個m次多項式P,以及在采樣點的誤差向量S,其中X,Y是兩個等長向量,P是一個長度為m+1的向量,P的元素為多項式系數。
(四)離散傅里葉變換
一、離散傅里葉變換算法簡介
二、離散傅里葉變換的實現
(1)fft(X):返回向量X的離散傅里葉變換。設X的長度(即元素個數)為N,若N為2的冪次,則為以2為基數的快速傅里葉變換,否則為運算速度很慢的非2冪次
的算法。對於矩陣X,fft(X)應用於矩陣的每一列。
(2)fft(X,N):計算N點傅里葉變換。它限定向量的長度為N,若X的長度小於N,則不足部分補上零;若大於N,則刪去超出N的那些元素。對於矩陣X,它同樣應
用於矩陣的每一列,只是限定了向量的長度為N。
(3)fft(X,[],dim)或fft(X,N,dim):這是對於矩陣的調用格式,前者的功能與FFT(X)基本相同,而后者則與FFT(X,N)基本相同。知識當參數dim=1時,作用於X
的每一列,當dim=2時,作用於X的每一行。
(五)多項式計算
一、多項式的四則運算
1、多項式的加減運算
= =,其實就是直接將系數提出來弄成向量,然后進行相加減就好了。。
2、多項式的乘法運算
conv(P1,P2) %P1,P2是兩個多項式系數向量
3、多項式的除法運算
[Q,r]=deconv(P1,P2) %Q返回的是P1除以P2的商式,r返回P1除以P2的余式。Q和r仍是多項式系數向量。
二、多項式的導函數
p=polyder(P) %求多項式P的導函數 p=polyder(P,Q) %求P*Q的導函數 [p,q]=polyder(P,Q) %求P/Q的導函數,導函數的分子存入p,分母存入q。
三、多項式的求值
1、代數多項式求值
Y=polyval(P,x) %若x為一數值,則求多項式在該店的值;若x為向量或矩陣,則對向量或者矩陣的每個元素求多項式的值。
2、矩陣多項式求值
Y=polyvalm(P,x)
以方陣為自變量求多項式的值。設A為方陣,P代表多項式。
四、多項式求根
1、求根方法
x=roots(P)
2、若已知全部根,則可以得到多項式
P=poly(x)






