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語句塊。
實例:
?
?method='bigger';
switch method
case'bigger'
a=3;
case'middle'
a=2;
case'small'
a=1;
otherwise
a=0;
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, …)
實例:
?
cast:轉變數值數據類型? B=cast(A,newclass)
實例:
?
?a=int16(2);
b=cast(a,'char');
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是字符數組
實例:
?
?c={'Tom','math',80;'Jane','math',70}
feilds={'name','subject','grade'};
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 :以圖形形式顯示元胞數組的結構
實例:
?
?c{1,1}='2-by-2';c{1,2}='eigenvalues ofeye(2)';
c{2,1}=eye(2);c{2,2}=eig(eye(2));
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 :以弧度的形式返回反余弦值
實例:
?
?x=-1:.05:1;
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, dde23??xint是點或向量,函數求解的是該點上的值。
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)
實例:
?
?
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)的梯度圖形。
?
?v=-2:0.2:2;
[x,y]=meshgrid(v);
z=exp(-x.^2-y.^2);
[px,py]=gradient(z,0.2,0.2);
contour(v,v,z)
hold on
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
實例:
?
?x=(-5:0.5:5)';
y=sin(x);
xi=(-5:0.5:5)';
yi=interp1q(x,y,xi);
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’:三次插值法
實例:
?
?[X,Y]=meshgrid(-2:0.5:2);
Z=peaks(X,Y);
[XI,YI]=meshgrid(-2:0.125:2);
ZI=interp2(X,Y,Z,XI,YI);
mesh(X,Y,Z)
hold on
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)
實例:
?
?y=[1 2 3 2 1 23];
N=length(y);
L=5;
M=N*L;
x=0:L:L*N-1
xi=0:M-1
yi=interpft(y,M)
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,...)
實例:
?
?[X1,X2]=ndgrid(-1:0.1:1,-1:0.1:1);
Z=exp(-X1.^2-X2.^2);
mesh(Z)
?
?
pchip :分段三次厄密插值多項式(PCHIP) yi=pchip(x,y,xi)pp=pchip(x,y)
實例:
?
?x=-4:4
y=[-3 -2 -2 0 0 0 2 2 3];
t=-4:0.01:4;
p=pchip(x,y,t);
s=spline(x,y,t);
plot(x,y,'o',t,p,'-',t,s,'-.')
legend('data','pchip','spline',4)
?
?
spline :曲線三次樣條插值?? yy=spline(x,Y,xx)?? pp=spline(x,Y)
實例:
?
?x=0:10;
y=cos(x);
xx=0:0.1:10;
yy=spline(x,y,xx);
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和多項式的值能得到誤差估計值或預測
實例:
?
?x=(-3:0.2:3)';
y=erf(x);
p=polyfit(x,y,3)
f=polyval(p,x);
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, ...)
實例:
?
?x=1:0.1:2;
y=[x,sin(x)];
fid=fopen('sin.txt','wt');
fprintf(fid,'%5.2f %5.6f\n',y);
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)
總結
以上是生活随笔為你收集整理的matlab常用函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《文后参考文献著录规则》
- 下一篇: matlab里wblrnd函数,matl