1. 程式人生 > 實用技巧 >【轉載】matlab常用函式

【轉載】matlab常用函式

第一篇:Matlab軟體函式

一、軟體操作函式

1)命令視窗函式:

clc:清空命令視窗,使用向上箭頭翻看命令。

open:開啟檔案,文字檔案(*.doc),可執行檔案(*.exe),圖形檔案(*.fig),超文字檔案(*.html,*.htm),MATLAB資料庫檔案(*.mat),simulink模型檔案*.mdl),MATLAB p檔案(*.p),PDF檔案(*,pdf),PPT檔案(*.ppt),工程檔案(*.prj),網址(*.url)和變數等。

format:設定資料輸出格式。format('command')

disp:在commandwindow中顯示字元和矩陣。

disp(x)---x為矩陣

disp('x')---x為字元

disp(['x' a 'y'])---列印字符合集

clear:從工作空間中清空變數。clear, clear name,clear global name, clear –regexpexpr1 expr2

clear:清空工作空間的所有變數

clear name---clear('name'):清空以name命名的m檔案,mex檔案或變數名

clear globe name:完全清空以name命名的全域性變數,清空後該全域性變數不能被函式呼叫。

2)幫助函式

demo:通過help瀏覽器訪問工具箱的演示檔案。---demo'MATLAB'

doc:在help瀏覽器中開啟相應幫助頁面。

help:在MATLAB命令視窗中顯示MATLAB的m函式,mdl檔案,工具箱等的幫助資訊。

二、檔案程式設計函式

1)檔案目錄操作函式

dir:顯示當前工作空間目錄檔案 dir; dirname;

files=dir('directory'):返回指定目錄中的檔案資訊到結構體file中,結構體file中包含的資訊為:name,data,bytes,isdir,datenum

2)檔案編輯除錯函式

dbstep:從當前斷點中執行一行或多行程式碼dbstep; dbstep nlines;dbstep in

dbstop:設定斷點 dbstop inmfile ; dbstop in mfile at lineno

debug:列舉出m檔案的除錯函式

mlint:檢查m檔案可能出現的問題,並報告結果---mlint('m-filename')

profile:除錯優化m檔案程式碼---介面Desktop--Profiler

3)檔案指令碼函式

function:宣告函式 function [out1, out2, ...]=funname(in1,in2,...):定義一個名為funname的函式,該函式輸入引數為in1、in2、……輸出引數為out1、out2、……

input:請求使用者輸入 user_entry=input('prompt') :在螢幕上顯示prompt作為提示,等待鍵盤輸入,並返回使用者輸入的值。user_entry=input('prompt','s'):將鍵入的字元返回為文字變數而非變數名或數值。

4)語句控制函式

break:終止執行for迴圈或者while迴圈, break語句結束迴圈,把語句控制返回給迴圈結束後的語句。

continue:傳遞控制給下一個for或while迴圈

case:條件為真時執行程式碼,case是switch語法中的允許有條件執行語句的一部分。case語句塊由case函式,case表示式和其後的一條或多條語句構成。

switch:有條件執行的程式碼,在基本語法中,當switch_expr ==case_expr時執行相關語句,如果沒有例項表示式與switch表示式相匹配,則語句控制傳遞給otherwise語句塊。

例項:

  1. method='bigger';

  2. switch method

  3. case'bigger'

  4. a=3;

  5. case'middle'

  6. a=2;

  7. case'small'

  8. a=1;

  9. otherwise

  10. a=0;

  11. end

If:如果條件為真,則執行相關語句 if expression, statements, end

elseif:---if expression1,statement1,elseifexpresstion,statement2,end

else:如果條件為假時執行語句

end:終止程式碼塊,或為陣列的最後一位數字索引, end用來終止for、while、switch、try和if語句---end函式也作為陣列的最後一個索引,如X(3:end)和X(1,1:2:end-1)。可以用end增加陣列,如X存在的情況下使用X(end+1)=5。

error:顯示資訊並終止函式---error('說明資訊')

for:反覆運算指定程式碼塊 forvariable=initval:endval, statements, end

while:當條件為真時重複執行語句---whileexpression,statement,end

return:從呼叫函式中返回

5)記憶體控制函式

global:宣告全域性變數 初始化為一個空矩陣

isglobal:判斷一個變數是否是全域性變數

persistent:定義靜態全域性常量

第二篇:資料型別函式

三、基本資料型別函式

1)數值函式

double:轉換為雙精度浮點數

single:轉換為單精度浮點數

typecast:在不改變資料大小情況下轉換資料型別Y=typecast(X,type)

type可選範圍:'uint8'、'int8'、'uint16'、'int16'、'uint32'、'int32'、'uint64'、'int64'、'single'、'double'

arrayfun:把函式應用到陣列中的每個元素 A=arrayfun(fun, S)應用fun函式到陣列S中的每個元素,將結果返回給陣列A。

A=arrayfun(fun, S, T, …)

例項:

  1. x(1).f1=2;x(2).f1=3;
  2. x(1).f2=3;x(2).f2=3;
  3. result=arrayfun(@(x)isequal(x.f1,x.f2),x)


cast:轉變數值資料型別 B=cast(A,newclass)

例項:

  1. a=int16(2);

  2. b=cast(a,'char');

  3. cate=class(b)

cat:連線陣列 C=cat(dim, A,B)--cat(2,A,B)與[A,B]相同,cat(1,A,B)與[A;B]相同

class:建立物件或者返回物件型別 obj=class(s,'class_name')

find:尋找非零元素的索引和值

ind=find(X);X可以是邏輯式,返回非零元素的索引

ind=find(X, k, 'first') 返回陣列X中所有非零元素的前k個元素。

ind=find(X, k, 'last') 返回陣列X中所有非零元素的後k個元素。

[row,col,v]=find(X,...)返回列向量,行向量,v表示非零值

isequal :判斷兩個物件是否相等 比較結構體是否相等時,結構體中子域的順序不重要 NaNs在此函式中認識不相等---isequal(A,B,...)相同返回1,不同返回0

isequalwithequalnans:把NaN視為相等的情況下判斷兩個陣列是否相等

2)字串轉化數值函式

base2dec :把指定進位制的數字字串轉換為十進位制數d=base2dec('strn', base)

bin2dec :把二進位制數字字串轉換為十進位制數bin2dec(binarystr)

hex2dec :把十六進位制數字字串轉換為十進位制數d=hex2dec('hex_value')

hex2num :把十六進位制數字字串轉換為雙精度浮點數n=hex2num(S)

str2double :把字串轉換為雙精度浮點數

str2num :把字串轉換為數字

3)數值轉化為字串函式

dec2base:把十進位制數轉換為指定基下的數值字串 str=dec2base(d, base)

dec2bin :把十進位制數轉換為二進位制數值字串

dec2hex :把十進位制數轉換為十六進位制的數值字串

int2str :把整數轉換為字串

mat2str :把矩陣轉換為字串

num2str :把數字轉換為字串

四、高階資料型別函式

1)結構體函式

cell2struct :把元胞陣列轉換成結構體陣列s=cell2struct(c, fields,dim) fields指結構體陣列的域名,fields可以說字元陣列或者字串元胞陣列。

size(c,dim)==length(fields)%如果fields是元胞陣列 size

(c,dim)==size(fields,1)%如果fields是字元陣列

例項:

  1. c={'Tom','math',80;'Jane','math',70}

  2. feilds={'name','subject','grade'};

  3. s=cell2struct(c,fields,2)


struct:建立結構體陣列 s=struct('field1', values1, 'field2',values2, ...)

struct2cell :把結構體陣列轉換為元胞陣列

structfun :把函式應用於結構體中的每一個子域A=structfun(fun, s)

2)元胞陣列函式

cell :建立元胞陣列 c=cell(n)c=cell(m,n)

celldisp :顯示元胞陣列的內容

cellfun :把函式應用於元胞陣列中的每個元素A=cellfun(fun, C, D,...)

cellplot :以圖形形式顯示元胞陣列的結構

例項:

  1. c{1,1}='2-by-2';c{1,2}='eigenvalues ofeye(2)';

  2. c{2,1}=eye(2);c{2,2}=eig(eye(2));

  3. cellplot(c)

cellstr :根據字串陣列建立字串元胞陣列

mat2cell :把矩陣分割為元胞陣列 c=mat2cell(x,m, n)

num2cell :把數值陣列轉變為元胞陣列 C=num2cell(A)

3)字串函式

func2str :根據函式控制代碼構建函式名稱字串s=func2str(fhandle)

char :把整數陣列轉化為字串 S=char(X)

eval :執行包含MATLAB表示式的字串eval(expression)

findstr :在長字串中尋找匹配的短字串,返回字串索引

sprintf :把一定格式把資料寫入字串 [s, errmsg]=sprintf(format,A, ...)

strcat :水平連線字串 t=strcat(s1,s2, s3, ...)

strcmp,strcmpi :比較字串---strcmp('str1','str2')相同返回1,不同返回0

strings函式:連線字串name=['abc' 'def' 'ghj']

strread :從字串中讀取指定格式資料

strrep :發現和替換子字串 str=strrep(str1, str2, str3) ---將str1內的所有子字串str2替換為str3

strtrim :刪除字串開頭和結尾的空字元

blanks :建立空格字串陣列

isletter :判斷字串中字元是否為英文字母

isspace :判斷字串中字元是否為空格

isstrprop :判斷字串中是否含有指定類別的字元tf=isspace('str')

dblank :刪除字串末尾空格

第三篇:矩陣函式

五、陣列和矩陣函式

1)陣列基本函式

display:顯示字元或者陣列

isempty :判斷陣列是否為空,空返回1,不空返回0

isequal :判斷陣列是否相同 (認為NaN不同)

isequalwithequalnans:判斷陣列是否相同,把NaN看成相同的數

isfinite :判斷陣列元素是否為有限數

isfloat :判斷陣列元素是否為浮點數

isinf :判斷陣列元素是否為無限數

isinteger :判斷元素是否為整數

islogical :判斷元素是否為邏輯變數

isnan :判斷元素是否為NaN

isnumeric :判斷陣列元素是否為數值

isscalar :判斷輸入是不是離散量

issparse :判斷矩陣是否為稀疏矩陣

isvector :判斷輸入是否為向量

length :計算向量的長度

max :找出向量中的最大元素

C=max(A) A為一個向量,返回向量最大值,矩陣A,返回每列向量最大值

C=max(A,B) A、B維數一樣,返回對應位置最大元素

max(A,[],dim)

[C,I]=max(A)找出最大值和索引

min :找出向量中的最小元素

ndims :計算矩陣的維數 ndims同length(size(x)) 一致

numel:計算陣列中元素的個數或者下標陣列表示式的個數

size :計算陣列維數大小 d=size(X) [m,n]=size(X)m行n列 m=size(X,dim)

2)陣列操作函式

bsxfun:兩個陣列間元素逐個計算C=bsxfun(fun,A,B)

@plus(加)@minus(減)@times(陣列乘)@rdivide(左除)@ldivide(右除)@power(冪)@max@min@rem(整除)@mod(模除)

dot :向量點乘 C=dot(A,B)

3)基礎矩陣函式

create :生成隨機數流 [s1,s2,…]=RandStream.create('gentype','NumStreams',n)

eye :生成單位矩陣 Y=eye([m,n])對角線1,其他0

ones :生成元素為1的陣列Y=ones(n) Y=ones(m,n)

rand :生成均勻分佈的偽隨機數矩陣r=rand(n) rand(m,n,p,…)

randi :生成均勻分佈的偽隨機整數矩陣 randi(imax) r=randi(imax,n)

r=randi(imax,m,n,p,…) r=randi([imin,imax],…) 例:r=randi([5,10],[2,3])

randn :生成[-1,1]之間隨機分佈數矩陣 r=randn(n) randn(m,n)randn(m,n,p,…)

randstream :生成隨機資料流

set (RandStream) :設定隨機資料流屬性set(S,'PropertyName',Value)

set(S,'Property')

4)矩陣處理函式

reshape :改變矩陣維數 B=reshape(A,m,n)

sort :把陣列元素按升序或降序排列

B=sort(A,dim) B=sort(...,mode) [B,IX]=sort(A,2)返回B元素在A中的位置的索引

sortrows :矩陣行按照升序排列

5)矩陣分析函式

det :求方陣行列式值

norm :計算向量或者矩陣範數 n=norm(A) n=norm(A,p)

normest :返回矩陣2-範數估計值

null :計算矩陣零空間

rank :返回矩陣的秩

subspace :返回兩個子空間夾角

trace :返回矩陣的跡對角元素之和

6)矩陣特徵值函式

eig :計算矩陣特徵值和特徵向量

condeig :計算特徵值對應的條件數

eigs :計算矩陣的最大特徵值和特徵向量

gsvd :矩陣廣義奇異值分解

svd :矩陣奇異值分解

第四篇 數學函式

六、基本數學函式

1)基本運算子

+:加法運算子

-:減法運算子

*:矩陣乘法

.*:陣列乘法

/:斜槓或者矩陣右除 B/A等於公式B*inv(A)

./:陣列右除 A./B等於A(i,j)/B(i,j)

\:反斜槓或者矩陣左除 A\B等於inv(A)*B

.\:陣列左除 A.\B等於B(i,j)/A(i,j)

^:矩陣冪計算

.^:陣列冪計算 A.^B等於A(i,j)的B(i,j)次冪

’:矩陣轉置

[]:表示空矩陣,A(m,:)刪除A中的一行,A(:,n)刪除A中的一列

{}:元胞組賦值

關係操作符:< <= > >= == ~ =

邏輯操作符 : 邏輯:&& || 陣列:& |~

2)資料操作函式

sort :陣列元素按升序或降序排列 B=sort(A) B=sort(A,dim) B=sort(...,mode)[B,IX]=sort(A,...)

sortrows :把矩陣中每行按照升序排列B=sortrows(A) B=sortrows(A,column)

sum :求數列元素的和 B=sum(A) A是向量,向量求和,A是矩陣就沒列求和 B=sum(A,dim)

3)統計分析函式

brush:互動式標記、刪除、修改以及儲存圖片中的觀測量位 data brush

corrcoef :計算相關性係數 R=corrcoef(X)

cov :返回協方差矩陣cov(x)

max :求陣列中的最大元素 C=max(A) C=max(A,B) C=max(A,[],dim)

mean :求陣列的平均數或者均值M=mean(A) M=mean(A,dim)

median :返回陣列的中間值M=median(A) M=median(A,dim)

mode :求陣列中出現頻率最多的值 M=mode(X) M=mode(X, dim)

[M,F]=mode(X, ...)

std :計算標準差 s=std(X)

var :計算方差V=var(X)

4)三角函式

acos :以弧度的形式返回反餘弦值

例項:

  1. x=-1:.05:1;

  2. plot(x,acos(x));grid on


acosd :以角度的形式返回反餘弦值

acosh :以弧度形式返回反雙曲餘弦值

acot :以弧度的形式返回反餘切值

acotd :以角度的形式返回反餘切值

acoth :以弧度的形式返回反雙曲餘切值

acsc :以弧度的形式返回反餘割值

acscd :以角度的形式返回反正割值

acsch :以弧度的形式反雙曲餘割值

asec :以弧度的形式返回反正割值

asecd :以角度的形式返回反正割值

asech :以弧度的形式返回反雙曲正割值

asin :以弧度的形式返回反正弦值

asind :以角度形式返回反正弦值

asinh :以弧度的形式返回反雙曲正弦值

atan :以弧度的形式返回反正切值

atand :以角度的形式返回反正切值

atanh :以弧度的形式返回反雙曲正切值

cos :以弧度的形式返回輸入的餘弦值

cosd :以角度的形式返回輸入的餘弦值

cosh :以弧度的形式返回輸入的雙曲餘弦值

cot :以弧度的形式返回輸入的餘切

cotd :以角度的形式返回輸入的餘切值

coth :以弧度的形式返回輸入的雙曲餘切值

csc :以弧度的形式返回輸入的餘割值

cscd :以角度形式返回輸入的餘割值

csch :以弧度的形式返回雙曲餘割值

sec :以弧度的形式返回輸入的正割值

secd :以角度的形式返回輸入的正割值

sech :以弧度的形式返回雙曲正割值

sin :以弧度的形式返回輸入的正弦

sind :以角度的形式返回輸入的正弦值

sinh :以弧度的形式返回輸入的雙曲正弦值

tan :以弧度的形式返回輸入的正切值

tand :以角度的形式返回輸入的正切值

tanh :以弧度的形式返回雙曲正切

5)指數函式

exp :計算指數

log :計算自然對數

log10 :計算平凡對數(以10為底)

log2 :計算以2為底數的對

pow2 :計算以2為底的冪

nthroot:計算實數值的實n階方根。y=nthroot(X,n)

sqrt :計算平方根

abs :計算絕對值和複數模值

6)除法函式

ceil :向正無窮方向舍入

fix :向零方向舍入

floor :向負無窮方向舍入

idivide :舍入操作 C=idivide(A,B, opt)

mod :計算相除後的模值

7)排列函式

factorial:階乘---factorial(N),N!

perms:元素所有可能的全排列

七、高階數學函式

1)微分方程解函式

decic :計算和ode15i(ode常微分方程)相容的初始條件

[y0mod,yp0mod]=decic(odefun,t0,y0,fixed_y0,yp0,fixed_yp0)

deval :計算微分方程的解sxint=deval(sol,xint) sol是求解器返回的結構體,(ode45, ode23, dde23xint是點或向量,函式求解的是該點上的值。

deval :計算微分方程的解sxint=deval(sol,xint)

2)極值函式

fminbnd :在指定區間上求解單變數函式的最小值x=fminbnd(fun,x1,x2)x=fminbnd(fun,x1,x2,options) 結構體options用於指定優化引數

[x,fval]=fminbnd(...) [x,fval,exitflag]=fminbnd(...)

[x,fval,exitflag,output]=fminbnd(...)

fminsearch :利用derivative-free演算法求無約束多變數函式的最小值

x=fminsearch(fun,x0)x=fminsearch(fun,x0,options)

[x,fval,exitflag]=fminsearch(...)

fzero:求單變數連續函式的零值點 x=fzero(fun,x0) x=fzero(fun,x0,options)

isqnonneg :求解非負最小二乘法約束問題

x=lsqnonneg(C,d)返回一個向量x,滿足x >= 0時(C*x-d)的範數最小。

x=lsqnonneg(C,d,x0) x=lsqnonneg(C,d,x0,options)

3)數值積分函式

dblquad :計算矩形區域的二重定積分

q=dblquad(fun,xmin,xmax,ymin,ymax)

q=dblquad(fun,xmin,xmax,ymin,ymax,tol)q=dblquad(fun,xmin,xmax,ymin,ymax,tol,method)

quad :求基於變步長Simpson法的函式定積分數值解 q=quad(fun,a,b)

例項:

  1. F=@(x)1./(x.^3-2*x-5);
  2. Q=quad(F,0,2)

quad2d :在平面區域求二重積分的數值解q=quad2d(fun,a,b,c,d)

例項:Q=quad2d(@(x,y)y.*sin(x)+x.*cos(y),pi,2*pi,0,pi)

4)微分積分函式

dblquad :計算矩形區域的二重定積分 q=dblquad(fun,xmin,xmax,ymin,ymax)

cumtrapz :累積梯形數值積分 Z=cumtrapz(Y)Z=cumtrapz(X,Y) 對於多維陣列從第一維開始計算Z=cumtrapz(X,Y,dim)

diff :差分與微分近似Y=diff(X) Y=diff(X,n) Y=diff(X,n,dim)

gradient :計算函式數值梯度 FX=gradient(F) [FX,FY]=gradient(F)

例項:繪製函式z=exp(-x.^2-y.^2)的梯度圖形。

  1. v=-2:0.2:2;

  2. [x,y]=meshgrid(v);

  3. z=exp(-x.^2-y.^2);

  4. [px,py]=gradient(z,0.2,0.2);

  5. contour(v,v,z)

  6. hold on

  7. quiver(v,v,px,py)

trapz :梯形數值積分 Z=trapz(Y) Z=trapz(X,Y) Z=trapz(...,dim)

5)賦值函式

biltin:過載方法中執行MATLAB內部自帶的函式 builtin(...) 函式和 feval(...)函式相同

evalc :計算表示式值 T=evalc(S):同函式eval(S)用法相同

feval :計算函式值 [y1, y2, ...]=feval(fhandle, x1, ..., xn)

第五篇:方程函式

八、插值函式、線性方程解函式和多項式函式

1)插值函式

interp1q :1維快速線性插值法 yi=interp1q(x,Y,xi)

interp1q正常執行條件:

(1)x單調遞增列向量

(2)Y為列向量or行數為length(x)(3)xi為列向量,如果xi值在x的座標範圍外,返回NaN

例項:

  1. x=(-5:0.5:5)';

  2. y=sin(x);

  3. xi=(-5:0.5:5)';

  4. yi=interp1q(x,y,xi);

  5. plot(x,y,'o',xi,yi)

interp2 :2維資料插值法

ZI=interp2(X,Y,Z,XI,YI)

ZI=interp2(Z,XI,YI)

ZI=interp2(X,Y,Z,XI,YI,method)

(1)‘nearest’:最鄰近插值法;

(2)‘linear’:線性插值法(預設插值方法);

(3)‘spline’:三次樣條插值法;

(4)’cubic’:三次插值法

例項:

  1. [X,Y]=meshgrid(-2:0.5:2);

  2. Z=peaks(X,Y);

  3. [XI,YI]=meshgrid(-2:0.125:2);

  4. ZI=interp2(X,Y,Z,XI,YI);

  5. mesh(X,Y,Z)

  6. hold on

  7. mesh(XI,YI,ZI+10)

interp3 :3維資料插值法

VI=interp3(X,Y,Z,V,XI,YI,ZI)

VI=interp2(X,Y,Z,V,XI,YI,ZI,method)

(1)‘nearest’:最鄰近插值法;

(2)‘linear’:線性插值法(預設插值方法);

(3)‘spline’:三次樣條插值法;

(4)’cubic’:三次插值法

interpft :基於FFT方法的1維插值法y=interpft(x,n)y=interpft(x,n,dim)

例項:

  1. y=[1 2 3 2 1 23];

  2. N=length(y);

  3. L=5;

  4. M=N*L;

  5. x=0:L:L*N-1

  6. xi=0:M-1

  7. yi=interpft(y,M)

  8. plot(x,y,'o',xi,yi,'*')

interpn :n維資料插值(表格查詢)VI=interpn(X1,X2,X3,...,V,Y1,Y2,Y3,...)

meshgrid :為3維繪圖生成X和Y矩陣

[X,Y]=meshgrid(x,y) [X,Y,Z]=meshgrid(x,y,z)

ndgrid :生成可為函式和插值演算法使用的n維矩陣

[X1,X2,X3,...]=ndgrid(x1,x2,x3,...)

例項:

  1. [X1,X2]=ndgrid(-1:0.1:1,-1:0.1:1);

  2. Z=exp(-X1.^2-X2.^2);

  3. mesh(Z)

pchip :分段三次厄密插值多項式(PCHIP) yi=pchip(x,y,xi)pp=pchip(x,y)

例項:

  1. x=-4:4

  2. y=[-3 -2 -2 0 0 0 2 2 3];

  3. t=-4:0.01:4;

  4. p=pchip(x,y,t);

  5. s=spline(x,y,t);

  6. plot(x,y,'o',t,p,'-',t,s,'-.')

  7. legend('data','pchip','spline',4)

spline :曲線三次樣條插值 yy=spline(x,Y,xx) pp=spline(x,Y)

例項:

  1. x=0:10;

  2. y=cos(x);

  3. xx=0:0.1:10;

  4. yy=spline(x,y,xx);

  5. plot(x,y,'o',xx,yy)

2)線性方程解函式

linsolve :使用部分主元LU因子分解法求解線性方程組 X = linsolve(A,B) [X, R] = linsolve(A,B) X = linsolve(A,B,opts)

lscov :已知協方差時求解方程的最小二乘解

x = lscov(A,b) 線性方程組A*x = b的一般最小二乘解

x = lscov(A,b,w) 線性方程組A*x = b的加權最小二乘解

x = lscov(A,b,V) 線性方程組A*x = b 的廣義最小二乘解

x =lscov(A,b,V,alg)

bicg :求解線性方程的雙共軛梯度法

x=bicg(A,b) bicg(A,b,tol)bicg(A,b,tol,maxit)

bicg(A,b,tol,maxit,M1,M2)bicg(A,b,tol,maxit,M1,M2,x0)[x,flag]=bicg(A,b,...)

[x,flag,relres]=bicg(A,b,...)[x,flag,relres,iter]=bicg(A,b,...)

[x,flag,relres,iter,resvec]=bicg(A,b,...)

bicgstab :求解線性方程的穩定的雙共軛梯度法

bicgstabl :求解線性方程的雙共軛梯度l穩定法

bicgstab :求解線性方程的穩定的雙共軛梯度法

bicgstabl :求解線性方程的雙共軛梯度l穩定法

cgs :求解線性方程的共軛梯度平方法

gmres :求線性方程的廣義最小殘差法

lsqr :求解線性方程的LSQR 方法

minres :求解線性方程的最小殘差法

pcg :求解線性方程的預處理共軛梯度法

qmr :求解線性方程的準最小殘差法

symmlq :求解線性方程的對稱 LQ 法

tfqmr :求解線性方程的自由轉置準最小殘差法

3)多項式函式

polyfit :多項式擬合

p=polyfit(x,y,n) 根據擬合數據x,y求n階多項式p(x)的係數,p是係數

[p,S]=polyfit(x,y,n) p是係數,使用S和多項式的值能得到誤差估計值或預測

例項:

  1. x=(-3:0.2:3)';

  2. y=erf(x);

  3. p=polyfit(x,y,3)

  4. f=polyval(p,x);

  5. plot(x,y,'*',x,f,'-')

polyval :多項式求值 y=polyval(p,x)

poly :根據根求解多項式

polyder :解析求解多項式微分表示式k=polyder(p) k=polyder(a,b)

polyint :解析求解多項式積分表示式係數 polyint(p,k)

mkpp :構建分段多項式 pp=mkpp(breaks,coefs)

breaks是一個長度為L+1的向量,該向量元素嚴格遞增。coefs為L*k的矩陣,每行元素代表

[breaks(i),breaks(i+1)]的k階多項式的係數。

十一、基本檔案操作函式

1)檔案建立函式

filemaker :把檔名與檔案中函式名分開 。

filesep :檔案目錄分隔。

fileparts :把目標檔名拆分成字串形式輸出 。

tempdir :返回系統暫存地址名 。

tempname :返回系統暫存檔名 。

fullfile :建立檔名

2)檔案開啟、讀取、儲存函式

open:開啟檔案 ---用法:open('name')

load :將檔案匯入到MATLABworkspace中。loadfilename load filename X Y Z,

load-asciifilename ,load-mat filename,load('arg1', 'arg2', 'arg3', ...)

save:儲存檔案.save filename, save filename content, savefilename options

save('filename', 'var1', 'var2', ...)

daqread :讀資料採集工具箱(.daq)中的檔案 。

[data, time, abstime, events, daqinfo]= daqread('filename')

uiimport :呼叫檔案匯入助手

3)簡單檔案輸入輸出函式

fopen :開啟檔案。

fid = fopen(filename)

fid = fopen(filename,permission)

Permission值

開啟模式

‘r’

只讀模式

‘w’

可寫入模式,覆蓋已有內容

‘a’

可寫入模式,寫入資料到檔案末尾

‘r+’

可讀寫模式,

‘w+’

可寫入模式,覆蓋已有內容

‘a+’

可寫入模式,寫入資料到檔案末尾

‘A’

無自動刪除新增

‘W’

無自動刪除寫入

fclose 關閉檔案。status=fclose(fid) ,status=fclose('all')

fprintf:以指定格式將資料寫入檔案 。count = fprintf(fid, format, A, ...)

例項:

  1. x=1:0.1:2;

  2. y=[x,sin(x)];

  3. fid=fopen('sin.txt','wt');

  4. fprintf(fid,'%5.2f %5.6f\n',y);

  5. fclose(fid)

fscanf :以指定格式讀取檔案中的內容 。A =fscanf(fid, format) , [A,count] = fscanf(fid, format, size)

fread :讀取檔案中的二進位制資料 。A =fread(fid, count ,precision, skip, machineformat)

fwrite :將二進位制資料寫入到檔案中 。

fseek :設定檔案位置指標 。status = fseek(fid,offset, origin)

ftell :獲取檔案位置指標 。position = ftell(fid)

fwind :把檔案位置指標移動到檔案起始位置 。fwind(fid)

fgetl :按行讀取檔案內容,並刪去換行符 。tline = fgetl(fid)

fgets :按行讀取檔案內容,並保留換行符 。tline = fgets(fid, nchar)

frewind :將檔案指標移到檔案的起始位置。 frewind(fid)

feof :測試是否為檔案的末尾 。message = ferror(fid)

ferro :測試檔案輸入輸出是否有錯誤 。message = ferror(fid,'clear') , [message,errnum] = ferror(...)

disp :將目標檔案所包含的資訊以不同形式顯示,如文字、陣列等形式。

disp(obj)

4)電子表格操作函式

xlsfinfo :檢測檔案中是否包含Microsoft Excel電子表格檔案 。

typ = xlsfinfo(filename) [typ,desc, fmt] = xlsfinfo(filename)

xlsread :讀Microsoft Excel電子表格檔案中的內容 。

num = xlsread(filename),num = xlsread(filename,sheet),num =xlsread(filename, range),num = xlsread(filename, sheet, range, 'basic')

[num,txt,raw,X]=xlsread(filename,sheet, range, 'basic')

xlswrite :將資料寫入Microsoft Excel電子表格檔案中 。

xlswrite(filename, M),xlswrite(filename, M, sheet, range),

[status, message] = xlswrite(filename, ...)

wk1finfo :檢測檔案中是否包含Lotus 1-2-3 WK1電子表格。

[extens, typ] = wk1finfo(filename)

wk1read :讀取Lotus 1-2-3 WK1電子表格檔案 。

M = wk1read(filename) ,M = wk1read(filename,r,c,range)

wk1write :將資料寫入Lotus1-2-3 WK1電子表格檔案中 。

wk1write(filename,M,r,c)