MATLAB學習筆記(六)——MATLAB數據分析與多項式計算


(一)數據處理統計

一、最大值和最小值

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)樣本標准方差:

                  image

(2)總體標准方差:

                 image

(3)MATLAB封裝方法:

Y=std(A,flag,dim);
%A是向量時,返回一個標准方差。A是矩陣時,返回一個行向量,它的各個元素便是矩陣A各列的標准方差。
%dim=1,取各列的標准方差,dim=2時,取各行的標准方差。
%flag=0,取樣本標准方差。flag=1,取總體標准方差
%flag=0,dim=1,為缺省默認值。

2、相關系數

(1)定義:

image

(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');

image

可以看出最好的就是三次樣條插值以及三次插值。

二、二維數據插值

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;

image

(三)曲線擬合

[P,S]=polyfit(X,Y,m)

  產生一個m次多項式P,以及在采樣點的誤差向量S,其中X,Y是兩個等長向量,P是一個長度為m+1的向量,P的元素為多項式系數。

(四)離散傅里葉變換

一、離散傅里葉變換算法簡介

image

二、離散傅里葉變換的實現

(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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM