轉載自:
http://blog.csdn.net/dengjianqiang2011/article/details/8753807
MATLAB矩陣操作大全
一、矩陣的表示
在MATLAB中創建矩陣有以下規則:
a、矩陣元素必須在”[ ]”內;
b、矩陣的同行元素之間用空格(或”,”)隔開;
c、矩陣的行與行之間用”;”(或回車符)隔開;
d、矩陣的元素可以是數值、變量、表達式或函數;
e、矩陣的尺寸不必預先定義。
二,矩陣的創建:
1、直接輸入法
最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素,輸入的方法按照上面的規則。建立向量的時候可以利用冒號表達式,冒號表達式可以產生一個行向量,一般格式是: e1:e2:e3,其中e1為初始值,e2為步長,e3為終止值。還可以用linspace函數產生行向量,其調用格式為:linspace(a,b,n) ,其中a和b是生成向量的第一個和最后一個元素,n是元素總數。
2、利用MATLAB函數創建矩陣
基本矩陣函數如下:
(1) ones()函數:產生全為1的矩陣,ones(n):產生n*n維的全1矩陣,ones(m,n):產生m*n維的全1矩陣;
(2) zeros()函數:產生全為0的矩陣;
(3) rand()函數:產生在(0,1)區間均勻分布的隨機陣;
(4) eye()函數:產生單位陣;
(5) randn()函數:產生均值為0,方差為1的標准正態分布隨機矩陣。
3、利用文件建立矩陣
當矩陣尺寸較大或為經常使用的數據矩陣,則可以將此矩陣保存為文件,在需要時直接將文件利用load命令調入工作環境中使用即可。同時可以利用命令reshape對調入的矩陣進行重排。reshape(A,m,n),它在矩陣總元素保持不變的前提下,將矩陣A重新排成m*n的二維矩陣。
二、矩陣的簡單操作
1.獲取矩陣元素
可以通過下標(行列索引)引用矩陣的元素,如 Matrix(m,n)。
也可以采用矩陣元素的序號來引用矩陣元素。
矩陣元素的序號就是相應元素在內存中的排列順序。
在MATLAB中,矩陣元素按列存儲。
序號(Index)與下標(Subscript )是一一對應的,以m*n矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。
其相互轉換關系也可利用sub2ind和ind2sub函數求得。
2.矩陣拆分
利用冒號表達式獲得子矩陣:
(1) A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。
(2) A(i:i+m,:)表示取A矩陣第i~i+m行的全部元素;A(:,k:k+m)表示取A矩陣第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第i~i+m行內,並在第k~k+m列中的所有元素。此外,還可利用一般向量和end運算符來表示矩陣下標,從而獲得子矩陣。end表示某一維的末尾元素下標。
利用空矩陣刪除矩陣的元素:
在MATLAB中,定義[]為空矩陣。給變量X賦空矩陣的語句為X=[]。注意,X=[]與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在於工作空間中,只是維數為0。
3、特殊矩陣
(1) 魔方矩陣魔方矩陣有一個有趣的性質,其每行、每列及兩條對角線上的元素和都相等。對於n階魔方陣,其元素由1,2,3,…,n2共n2個整數組成。MATLAB提供了求魔方矩陣的函數magic(n),其功能是生成一個n階魔方陣。
(2) 范得蒙矩陣范得蒙(Vandermonde)矩陣最后一列全為1,倒數第二列為一個指定的向量,其他各列是其后列與倒數第二列的點乘積。可以用一個指定向量生成一個范得蒙矩陣。在MATLAB中,函數vander(V)生成以向量V為基礎向量的范得蒙矩陣。
(3) 希爾伯特矩陣在MATLAB中,生成希爾伯特矩陣的函數是hilb(n)。使用一般方法求逆會因為原始數據的微小擾動而產生不可靠的計算結果。MATLAB中,有一個專門求希爾伯特矩陣的逆的函數invhilb(n),其功能是求n階的希爾伯特矩陣的逆矩陣。
(4) 托普利茲矩陣托普利茲(Toeplitz)矩陣除第一行第一列外,其他每個元素都與左上角的元素相同。生成托普利茲矩陣的函數是toeplitz(x,y),它生成一個以x為第一列,y為第一行的托普利茲矩陣。這里x, y均為向量,兩者不必等長。toeplitz(x)用向量x生成一個對稱的托普利茲矩陣。
(5) 伴隨矩陣 MATLAB生成伴隨矩陣的函數是compan(p),其中p是一個多項式的系數向量,高次冪系數排在前,低次冪排在后。
(6) 帕斯卡矩陣我們知道,二次項(x+y)n展開后的系數隨n的增大組成一個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯卡(Pascal)矩陣。函數pascal(n)生成一個n階帕斯卡矩陣。
三、矩陣的運算
1、算術運算
MATLAB的基本算術運算有:+(加)、-(減)、*(乘)、/(右除)、\(左除)、^(乘方)、’(轉置)。運算是在矩陣意義下進行的,單個數據的算術運算只是一種特例。
(1) 矩陣加減運算假定有兩個矩陣A和B,則可以由A+B和A-B實現矩陣的加減運算。運算規則是:若A和B矩陣的維數相同,則可以執行矩陣的加減運算,A和B矩陣的相應元素相加減。如果A與B的維數不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數不匹配。
(2) 矩陣乘法 假定有兩個矩陣A和B,若A為m*n矩陣,B為n*p矩陣,則C=A*B為m*p矩陣。
(3) 矩陣除法在MATLAB中,有兩種矩陣除法運算:\和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則A\B和B/A運算可以實現。A\B等效於A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效於A矩陣的逆右乘B矩陣,也就是B*inv(A)。對於含有標量的運算,兩種除法運算的結果相同。對於矩陣來說,左除和右除表示兩種不同的除數矩陣和被除數矩陣的關系,一般A\B≠B/A。
(4) 矩陣的乘方 一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標量。
(5) 矩陣的轉置 對實數矩陣進行行列互換,對復數矩陣,共軛轉置,特殊的,操作符.’共軛不轉置(見點運算);
(6) 點運算在MATLAB中,有一種特殊的運算,因為其運算符是在有關算術運算符前面加點,所以叫點運算。點運算符有.*、./、.\和.^。兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數相同。
2、關系運算
MATLAB提供了6種關系運算符:<(小於)、<=(小於或等於)、>(大於)、>=(大於或等於)、==(等於)、~=(不等於)。關系運算符的運算法則為:
(1) 當兩個比較量是標量時,直接比較兩數的大小。若關系成立,關系表達式結果為1,否則為0;
(2) 當參與比較的量是兩個維數相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關系運算規則逐個進行,並給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成;
(3) 當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關系運算規則逐個比較,並給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。
3、邏輯運算
MATLAB提供了3種邏輯運算符:&(與)、|(或)和~(非)。 邏輯運算的運算法則為:
(1) 在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示;
(2) 設參與邏輯運算的是兩個標量a和b,那么,a&b a,b全為非零時,運算結果為1,否則為0。 a|b a,b中只要有一個非零,運算結果為1。~a 當a是零時,運算結果為1;當a非零時,運算結果為0。
(3) 若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規則逐個進行。最終運算結果是一個與原矩陣同維的矩陣,其元素由1或0組成;
(4) 若參與邏輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元素之間按標量規則逐個進行。最終運算結果是一個與矩陣同維的矩陣,其元素由1或0組成;
(5) 邏輯非是單目運算符,也服從矩陣運算規則;
(6) 在算術、關系、邏輯運算中,算術運算優先級最高,邏輯運算優先級最低。
四、矩陣分析
1、對角陣
(1) 對角陣只有對角線上有非0元素的矩陣稱為對角矩陣,對角線上的元素相等的對角矩陣稱為數量矩陣,對角線上的元素都為1的對角矩陣稱為單位矩陣。
(1) 提取矩陣的對角線元素設A為m*n矩陣,diag(A)函數用於提取矩陣A主對角線元素,產生一個具有min(m,n)個元素的列向量。diag(A)函數還有一種形式diag(A,k),其功能是提取第k條對角線的元素。
(2) 構造對角矩陣設V為具有m個元素的向量,diag(V)將產生一個m*m對角矩陣,其主對角線元素即為向量V的元素。diag(V)函數也有另一種形式diag(V,k),其功能是產生一個n*n(n=m+k)對角陣,其第m條對角線的元素即為向量V的元素。
2、三角陣
三角陣又進一步分為上三角陣和下三角陣,所謂上三角陣,即矩陣的對角線以下的元素全為0的一種矩陣,而下三角陣則是對角線以上的元素全為0的一種矩陣。
(1) 上三角矩陣 求矩陣A的上三角陣的MATLAB函數是triu(A)。 triu(A)函數也有另一種形式triu(A,k),其功能是求矩陣A的第k條對角線以上的元素。
(2) 下三角矩陣在MATLAB中,提取矩陣A的下三角矩陣的函數是tril(A)和tril(A,k),其用法與提取上三角矩陣的函數triu(A)和triu(A,k)完全相同。
3、矩陣的轉置與旋轉
(1) 矩陣的轉置 轉置運算符是單撇號(’)。
(2) 矩陣的旋轉 利用函數rot90(A,k)將矩陣A旋轉90o的k倍,當k為1時可省略。
4、矩陣的翻轉
對矩陣實施左右翻轉是將原矩陣的第一列和最后一列調換,第二列和倒數第二列調換,…,依次類推。矩陣A實施左右翻轉的函數是fliplr(A),對矩陣A實施上下翻轉的函數是flipud(A)。
5、矩陣的逆與偽逆
(1) 矩陣的逆 對於一個方陣A,如果存在一個與其同階的方陣B,使得:AB=BA=I (I為單位矩陣) 則稱B為A的逆矩陣,當然,A也是B的逆矩陣。求方陣A的逆矩陣可調用函數inv(A)。
(2) 矩陣的偽逆如果矩陣A不是一個方陣,或者A是一個非滿秩的方陣時,矩陣A沒有逆矩陣,但可以找到一個與A的轉置矩陣A’同型的矩陣B,使得:ABA=A,BAB=B 此時稱矩陣B為矩陣A的偽逆,也稱為廣義逆矩陣。在MATLAB中,求一個矩陣偽逆的函數是pinv(A)。
6、方陣的行列式
把一個方陣看作一個行列式,並對其按行列式的規則求值,這個值就稱為矩陣所對應的行列式的值。在MATLAB中,求方陣A所對應的行列式的值的函數是det(A)。
7、矩陣的秩與跡
(1) 矩陣的秩 矩陣線性無關的行數與列數稱為矩陣的秩。在MATLAB中,求矩陣秩的函數是rank(A)。
(2) 矩陣的跡矩陣的跡等於矩陣的對角線元素之和,也等於矩陣的特征值之和。在MATLAB中,求矩陣的跡的函數是trace(A)。
8、向量和矩陣的范數
矩陣或向量的范數用來度量矩陣或向量在某種意義下的長度。范數有多種方法定義,其定義不同,范數值也就不同。
(1) 向量的3種常用范數及其計算函數 在MATLAB中,求向量范數的函數為:
a、norm(V)或norm(V,2):計算向量V的2-范數;
b、norm(V,1):計算向量V的1-范數;
c、norm(V,inf):計算向量V的∞-范數。
(2) 矩陣的范數及其計算函數 MATLAB提供了求3種矩陣范數的函數,其函數調用格式與求向量的范數的函數完全相同。
(3) 矩陣的條件數 在MATLAB中,計算矩陣A的3種條件數的函數是:
a、cond(A,1) 計算A的1-范數下的條件數;
b、cond(A)或cond(A,2) 計算A的2-范數數下的條件數;
c、cond(A,inf) 計算A的 ∞-范數下的條件數。
9、 矩陣的特征值與特征向量
在MATLAB中,計算矩陣A的特征值和特征向量的函數是eig(A),常用的調用格式有3種:
(1) E=eig(A):求矩陣A的全部特征值,構成向量E。
(2) [V,D]=eig(A):求矩陣A的全部特征值,構成對角陣D,並求A的特征向量構成V的列向量。
(3) [V,D]=eig(A,’nobalance’):與第2種格式類似,但第2種格式中先對A作相似變換后求矩陣A的特征值和特征向量,而格式3直接求矩陣A的特征值和特征向量。
五、字符串
在MATLAB中,字符串是用單撇號括起來的字符序列。MATLAB將字符串當作一個行向量,每個元素對應一個字符,其標識方法和數值向量相同。也可以建立多行字符串矩陣。字符串是以ASCII碼形式存儲的。abs和double函數都可以用來獲取字符串矩陣所對應的ASCII碼數值矩陣。相反,char函數可以把ASCII碼矩陣轉換為字符串矩陣。與字符串有關的另一個重要函數是eval,其調用格式為: eval_r(t) 其中t為字符串。它的作用是把字符串的內容作為對應的MATLAB語句來執行。
六、其他
查看矩陣非零元素的分布spy(A);
第二部分 矩陣的應用
一、稀疏矩陣
對於一個 n 階矩陣,通常需要 n2 的存儲空間,當 n 很大時,進行矩陣運算時會占用大量的內存空間和運算時間。在許多實際問題中遇到的大規模矩陣中通常含有大量0元素,這樣的矩陣稱為稀疏矩陣。Matlab支持稀疏矩陣,只存儲矩陣的非零元素。由於不存儲那些”0″元素,也不對它們進行操作,從而節省內存空間和計算時間,其計算的復雜性和代價僅僅取決於稀疏矩陣的非零元素的個數,這在矩陣的存儲空間和計算時間上都有很大的優點。
矩陣的密度定義為矩陣中非零元素的個數除以矩陣中總的元素個數。對於低密度的矩陣,采用稀疏方式存儲是一種很好的選擇。
1、稀疏矩陣的創建
(1) 將完全存儲方式轉化為稀疏存儲方式函數A=sparse(S)將矩陣S轉化為稀疏存儲方式的矩陣A。當矩陣S是稀疏存儲方式時,則函數調用相當於A=S。 sparse函數還有其他一些調用格式: sparse(m,n):生成一個m*n的所有元素都是0的稀疏矩陣。 sparse(u,v,S)--:u,v,S是3個等長的向量。S是要建立的稀疏矩陣的非0元素,u(i)、v(i)分別是S(i)的行和列下標,該函數建立一個max(u)行、max(v)列並以S為稀疏元素的稀疏矩陣。此外,還有一些和稀疏矩陣操作有關的函數。full(A):返回和稀疏存儲矩陣A對應的完全存儲方式矩陣。
(2) 直接創建稀疏矩陣 S=sparse(i,j,s,m,n),其中i 和j 分別是矩陣非零元素的行和列指標向量,s 是非零元素值向量,m,n 分別是矩陣的行數和列數。
(3) 從文件中創建稀疏矩陣利用load和spconvert函數可以從包含一系列下標和非零元素的文本文件中輸入稀疏矩陣。例:設文本文件 T.txt 中有三列內容,第一列是一些行下標,第二列是列下標,第三列是非零元素值。load T.txt S=spconvert(T)。
(4) 稀疏帶狀矩陣的創建 S=spdiags(B,d,m,n) 其中m 和n 分別是矩陣的行數和列數;d是長度為p的整數向量,它指定矩陣S的對角線位置;B是全元素矩陣,用來給定S對角線位置上的元素,行數為min(m,n),列數為p 。
(5) 其它稀疏矩陣創建函數
S=speye(m,n)
S=speye(size(A)) % has the same size as A
S=buchy % 一個內置的稀疏矩陣(鄰接矩陣)
等等
2、稀疏矩陣的運算
稀疏存儲矩陣只是矩陣的存儲方式不同,它的運算規則與普通矩陣是一樣的,可以直接參與運算。所以,Matlab中對滿矩陣的運算和函數同樣可用在稀疏矩陣中。結果是稀疏矩陣還是滿矩陣,取決於運算符或者函數。當參與運算的對象不全是稀疏存儲矩陣時,所得結果一般是完全存儲形式。
3、其他
(1) 非零元素信息
nnz(S) % 返回非零元素的個數
nonzeros(S) % 返回列向量,包含所有的非零元素
nzmax(S) % 返回分配給稀疏矩陣中非零項的總的存儲空間
(2) 查看稀疏矩陣的形狀 spy(S)
(3) find函數與稀疏矩陣
[i,j,s]=find(S)
[i,j]=find(S)
返回 S 中所有非零元素的下標和數值,S 可以是稀疏矩陣或滿矩陣。
管理命令和函數
help 在線幫助文件
doc 裝入超文本說明
what M、MAT、MEX文件的目錄列表
type 列出M文件
lookfor 通過help條目搜索關鍵字
which 定位函數和文件
Demo 運行演示程序
Path 控制MATLAB的搜索路徑
管理變量和工作空間
Who 列出當前變量
Whos 列出當前變量(長表)
Load 從磁盤文件中恢復變量
Save 保存工作空間變量
Clear 從內存中清除變量和函數
Pack 整理工作空間內存
Size 矩陣的尺寸
Length 向量的長度
disp 顯示矩陣或
與文件和*作系統有關的命令
cd 改變當前工作目錄
Dir 目錄列表
Delete 刪除文件
Getenv 獲取環境變量值
! 執行DOS*作系統命令
Unix 執行UNIX*作系統命令並返回結果
Diary 保存MATLAB任務
控制命令窗口
Cedit 設置命令行編輯
Clc 清命令窗口
Home 光標置左上角
Format 設置輸出格式
Echo 底稿文件內使用的回顯命令
more 在命令窗口中控制分頁輸出
啟動和退出MATLAB
Quit 退出MATLAB
Startup 引用MATLAB時所執行的M文件
Matlabrc 主啟動M文件
一般信息
Info MATLAB系統信息及Mathworks公司信息
Subscribe 成為MATLAB的訂購用戶
hostid MATLAB主服務程序的識別代號
Whatsnew 在說明書中未包含的新信息
Ver 版本信息
*作符和特殊字符
+ 加
— 減
* 矩陣乘法
.* 數組乘法
^ 矩陣冪
.^ 數組冪
\ 左除或反斜杠
/ 右除或斜杠
./ 數組除
Kron Kronecker張量積
: 冒號
( ) 圓括號
[ ] 方括號
. 小數點
.. 父目錄
… 繼續
, 逗號
; 分號
% 注釋
! 感嘆號
‘ 轉置或引用
= 賦值
= = 相等
< > 關系*作符
& 邏輯與
| 邏輯或
~ 邏輯非
xor 邏輯異或
邏輯函數
Exist 檢查變量或函數是否存在
Any 向量的任一元為真,則其值為真
All 向量的所有元為真,則其值為真
Find 找出非零元素的索引號
三角函數
Sin 正弦
Sinh 雙曲正弦
Asin 反正弦
Asinh 反雙曲正弦
Cos 余弦
Cosh 雙曲余弦
Acos 反余弦
Acosh 反雙曲余弦
Tan 正切
Tanh 雙曲正切
Atan 反正切
Atan2 四象限反正切
Atanh 反雙曲正切
Sec 正割
Sech 雙曲正割
Asech 反雙曲正割
Csc 余割
Csch 雙曲余割
Acsc 反余割
Acsch 反雙曲余割
Cot 余切
Coth 雙曲余切
Acot 反余切
Acoth 反雙曲余切
指數函數
Exp 指數
Log 自然對數
Log10 常用對數
Sqrt 平方根
復數函數
Abs 絕對值
Argle 相角
Conj 復共軛
Image 復數虛部
Real 復數實部
數值函數
Fix 朝零方向取整
Floor 朝負無窮大方向取整
Ceil 朝正無窮大方向取整
Round 朝最近的整數取整
Rem 除后取余
Sign 符號函數
基本矩陣
Zeros 零矩陣
Ones 全“1”矩陣
Eye 單位矩陣
Rand 均勻分布的隨機數矩陣
Randn 正態分布的隨機數矩陣
Logspace 對數間隔的向量
Meshgrid 三維圖形的X和Y數組
: 規則間隔的向量
特殊變量和常數
Ans 當前的答案
Eps 相對浮點精度
Realmax 最大浮點數
Realmin 最小浮點數
Pi 圓周率
I,j 虛數單位
Inf 無窮大
Nan 非數值
Flops 浮點運算次數
Nargin 函數輸入變量數
Nargout 函數輸出變量數
Computer 計算機類型
Isieee 當計算機采用IEEE算術標准時,其值為真
Why 簡明的答案
Version MATLAB版本號
時間和日期
Clock 掛鍾
Date 日歷
Etime 計時函數
Tic 秒表開始計時
Toc 計時函數
Cputime CPU時間(以秒為單位)
矩陣*作
Diag 建立和提取對角陣
Fliplr 矩陣作左右翻轉
Flipud 矩陣作上下翻轉
Reshape 改變矩陣大小
Rot90 矩陣旋轉90度
Tril 提取矩陣的下三角部分
Triu 提取矩陣的上三角部分
: 矩陣的索引號,重新排列矩陣
Compan 友矩陣
Hadamard Hadamard矩陣
Hankel Hankel矩陣
Hilb Hilbert矩陣
Invhilb 逆Hilbert矩陣
Kron Kronecker張量積
Magic 魔方矩陣
Toeplitz Toeplitz矩陣
Vander Vandermonde矩陣
矩陣分析
Cond 計算矩陣條件數
Norm 計算矩陣或向量范數
Rcond Linpack 逆條件值估計
Rank 計算矩陣秩
Det 計算矩陣行列式值
Trace 計算矩陣的跡
Null 零矩陣
Orth 正交化
線性方程
\和/ 線性方程求解
Chol Cholesky分解
Lu 高斯消元法求系數陣
Inv 矩陣求逆
Qr 正交三角矩陣分解(QR分解)
Pinv 矩陣偽逆
特征值和奇異值
Eig 求特征值和特征向量
Poly 求特征多項式
Hess Hessberg形式
Qz 廣義特征值
Cdf2rdf 變復對角矩陣為實分塊對角形式
Schur Schur分解
Balance 矩陣均衡處理以提高特征值精度
Svde 奇異值分解
矩陣函數
Expm 矩陣指數
Expm1 實現expm的M文件
Expm2 通過泰勒級數求矩陣指數
Expm3 通過特征值和特征向量求矩陣指數
Logm 矩陣對數
Sqrtm 矩陣開平方根
Funm 一般矩陣的計算
泛函——非線性數值方法
Ode23 低階法求解常微分方程
Ode23p 低階法求解常微分方程並繪出結果圖形
Ode45 高階法求解常微分方程
Quad 低階法計算數值積分
Quad8 高階法計算數值積分
Fmin 單變量函數的極小變化
Fmins 多變量函數的極小化
Fzero 找出單變量函數的零點
Fplot 函數繪圖
多項式函數
Roots 求多項式根
Poly 構造具有指定根的多項式
Polyvalm 帶矩陣變量的多項式計算
Residue 部分分式展開(留數計算)
Polyfit 數據的多項式擬合
Polyder 微分多項式
Conv 多項式乘法
Deconv 多項式除法
建立和控制圖形窗口
Figure 建立圖形
Gcf 獲取當前圖形的句柄
Clf 清除當前圖形
Close 關閉圖形
建立和控制坐標系
Subplot 在標定位置上建立坐標系
Axes 在任意位置上建立坐標系
Gca 獲取當前坐標系的句柄
Cla 清除當前坐標系
Axis 控制坐標系的刻度和形式
Caxis 控制偽彩色坐標刻度
Hold 保持當前圖形
句柄圖形對象
Figure 建立圖形窗口
Axes 建立坐標系
Line 建立曲線
Text 建立文本串
Patch 建立圖形填充塊
Surface 建立曲面
Image 建立圖像
Uicontrol 建立用戶界面控制
Uimen 建立用戶界面菜單
句柄圖形*作
Set 設置對象
Get 獲取對象特征
Reset 重置對象特征
Delete 刪除對象
Newplot 預測nextplot性質的M文件
Gco 獲取當前對象的句柄
Drawnow 填充未完成繪圖事件
Findobj 尋找指定特征值的對象
打印和存儲
Print 打印圖形或保存圖形
Printopt 配置本地打印機缺省值
Orient 設置紙張取向
Capture 屏幕抓取當前圖形
基本X—Y圖形
Plot 線性圖形
Loglog 對數坐標圖形
Semilogx 半對數坐標圖形(X軸為對數坐標)
Semilogy 半對數坐標圖形(Y軸為對數坐標)
Fill 繪制二維多邊形填充圖
特殊X—Y圖形
Polar 極坐標圖
Bar 條形圖
Stem 離散序列圖或桿圖
Stairs 階梯圖
Errorbar 誤差條圖
Hist 直方圖
Rose 角度直方圖
Compass 區域圖
Feather 箭頭圖
Fplot 繪圖函數
Comet 星點圖
圖形注釋
Title 圖形標題
Xlabel X軸標記
Ylabel Y軸標記
Text 文本注釋
Gtext 用鼠標放置文本
Grid 網格線
MATLAB編程語言
Function 增加新的函數
Eval 執行由MATLAB表達式構成的字串
Feval 執行由字串指定的函數
Global 定義全局變量
程序控制流
If 條件執行語句
Else 與if命令配合使用
Elseif 與if命令配合使用
End For,while和if語句的結束
For 重復執行指定次數(循環)
While 重復執行不定次數(循環)
Break 終止循環的執行
Return 返回引用的函數
Error 顯示信息並終止函數的執行
交互輸入
Input 提示用戶輸入
Keyboard 像底稿文件一樣使用鍵盤輸入
Menu 產生由用戶輸入選擇的菜單
Pause 等待用戶響應
Uimenu 建立用戶界面菜單
Uicontrol 建立用戶界面控制
一般字符串函數
Strings MATLAB中有關字符串函數的說明
Abs 變字符串為數值
Setstr 變數值為字符串
Isstr 當變量為字符串時其值為真
Blanks 空串
Deblank 刪除尾部的空串
Str2mat 從各個字符串中形成文本矩陣
Eval 執行由MATLAB表達式組成的串
字符串比較
Strcmp 比較字符串
Findstr 在一字符串中查找另一個子串
Upper 變字符串為大寫
Lower 變字符串為小寫
Isletter 當變量為字母時,其值為真
Isspace 當變量為空白字符時,其值為真
字符串與數值之間變換
Num2str 變數值為字符串
Int2str 變整數為字符串
Str2num 變字符串為數值
Sprintf 變數值為格式控制下的字符串
Sscanf 變字符串為格式控制下的數值
十進制與十六進制數之間變換
Hex2num 變十六進制為IEEE標准下的浮點數
Hex2dec 變十六制數為十進制數
Dec2hex 變十進制數為十六進制數
建模
Append 追加系統動態特性
Augstate 變量狀態作為輸出
Blkbuild 從方框圖中構造狀態空間系統
Cloop 系統的閉環
Connect 方框圖建模
Conv 兩個多項式的卷積
Destim 從增益矩陣中形成離散狀態估計器
Dreg 從增益矩陣中形成離散控制器和估計器
Drmodel 產生隨機離散模型
Estim 從增益矩陣中形成連續狀態估計器
Feedback 反饋系統連接
Ord2 產生二階系統的A、B、C、D
Pade 時延的Pade近似
Parallel 並行系統連接
Reg 從增益矩陣中形成連續控制器和估計器
Rmodel 產生隨機連續模型
Series 串行系統連接
Ssdelete 從模型中刪除輸入、輸出或狀態
ssselect 從大系統中選擇子系統
模型變換
C2d 變連續系統為離散系統
C2dm 利用指定方法變連續為離散系統
C2dt 帶一延時變連續為離散系統
D2c 變離散為連續系統
D2cm 利用指定方法變離散為連續系統
Poly 變根值表示為多項式表示
Residue 部分分式展開
Ss2tf 變狀態空間表示為傳遞函數表示
Ss2zp 變狀態空間表示為零極點表示
Tf2ss 變傳遞函數表示為狀態空間表示
Tf2zp 變傳遞函數表示為零極點表示
Zp2tf 變零極點表示為傳遞函數表示
Zp2ss 變零極點表示為狀態空間表示
模型簡化
Balreal 平衡實現
Dbalreal 離散平衡實現
Dmodred 離散模型降階
Minreal 最小實現和零極點對消
Modred 模型降階
模型實現
Canon 正則形式
Ctrbf 可控階梯形
Obsvf 可觀階梯形
Ss2ss 采用相似變換
模型特性
Covar 相對於白噪聲的連續協方差響應
Ctrb 可控性矩陣
Damp 阻尼系數和固有頻率
Dcgain 連續穩態(直流)增益
Dcovar 相對於白噪聲的離散協方差響應
Ddamp 離散阻尼系數和固有頻率
Ddcgain 離散系統增益
Dgram 離散可控性和可觀性
Dsort 按幅值排序離散特征值
Eig 特征值和特征向量
Esort 按實部排列連續特征值
Gram 可控性和可觀性
Obsv 可觀性矩陣
Printsys 按格式顯示系統
Roots 多項式之根
Tzero 傳遞零點
Tzero2 利用隨機擾動法傳遞零點
時域響應
Dimpulse 離散時間單位沖激響應
Dinitial 離散時間零輸入響應
Dlsim 任意輸入下的離散時間仿真
Dstep 離散時間階躍響應
Filter 單輸入單輸出Z變換仿真
Impulse 沖激響應
Initial 連續時間零輸入響應
Lsim 任意輸入下的連續時間仿真
Ltitr 低級時間響應函數
Step 階躍響應
Stepfun 階躍函數
頻域響應
Bode Bode圖(頻域響應)
Dbode 離散Bode圖
Dnichols 離散Nichols圖
Dnyquist 離散Nyquist圖
Dsigma 離散奇異值頻域圖
Fbode 連續系統的快速Bode圖
Freqs 拉普拉斯變換頻率響應
Freqz Z變換頻率響應
Ltifr 低級頻率響應函數
Margin 增益和相位裕度
Nichols Nichols圖
Ngrid 畫Nichols圖的柵格線
Nyquist Nyquist圖
Sigma 奇異值頻域圖
根軌跡
Pzmap 零極點圖
Rlocfind 交互式地確定根軌跡增益
Rlocus 畫根軌跡
Sgrid 在網格上畫連續根軌跡
Zgrid 在網格上畫離散根軌跡
增益選擇
Acker 單輸入單輸出極點配置
Dlqe 離散線性二次估計器設計
Dlqew 離散線性二次估計器設計
Dlqr 離散線性二次調節器設計
Dlqry 輸出加權的離散調節器設計
Lqe 線性二次估計器設計
Lqed 基於連續代價函數的離散估計器設計
Lqe2 利用Schur法設計線性二次估計器
Lqew 一般線性二次估計器設計
Lqr 線性二次調節器設計
Lqrd 基於連續代價函數的離散調節器設計
Lqry 輸出加權的調節器設計
Lqr2 利用Schur法設計線性二次調節器
Place 極點配置
方程求解
Are 代數Riccati方程求解
Dlyap 離散Lyapunov方程求解
Lyap 連續Lyapunov方程求解
Lyap2 利用對角化求解Lyapunov方程
演示示例
Ctrldemo 控制工具箱介紹
Boildemo 鍋爐系統的LQG設計
Jetdemo 噴氣式飛機偏航阻尼的典型設計
Diskdemo 硬盤控制器的數字控制
Kalmdemo Kalman濾波器設計和仿真
實用工具
Abcdchk 檢測(A、B、C、D)組的一致性
Chop 取n個重要的位置
Dexresp 離散取樣響應函數
Dfrqint 離散Bode圖的自動定范圍的算法
Dfrqint2 離散Nyquist圖的自動定范圍的算法
Dmulresp 離散多變量響應函數
Distsl 到直線間的距離
Dric 離散Riccati方程留數計算
Dsigma2 DSIGMA實用工具函數
Dtimvec 離散時間響應的自動定范圍算法
Exresp 取樣響應函數
Freqint Bode圖的自動定范圍算法
Freqint2 Nyquist圖的自動定范圍算法
Freqresp 低級頻率響應函數
Givens 旋轉
Housh 構造Householder變換
Imargin 利用內插技術求增益和相位裕度
Lab2ser 變標號為字符串
Mulresp 多變量響應函數
Nargchk 檢測M文件的變量數
Perpxy 尋找最近的正交點
Poly2str 變多項式為字符串
Printmat 帶行列號打印矩陣
Ric Riccati方程留數計算
Schord 有序Schwr分解
Sigma2 SIGMA使用函數
Tfchk 檢測傳遞函數的一致性
Timvec 連續時間響應的自動定范圍算法
Tzreduce 在計算過零點時簡化系統
Vsort 匹配兩根軌跡的向量
MATLAB常見問題和常用命令參考
Q1:matlab有沒有監視內存的方法?
A: 用函數whos。
Q2:如何解決matlab7.0命令窗口跳出一大堆Java錯誤...
A: 換matlab 7的sp2。
Q3:自從安裝matlab,一開機就在進程里有matlab。
能不能開機的時候進程就不運行matlab?
A: 開始-->控制面板-->管理工具-->服務
把MATLAB Server的屬性改成“手動”就行了。
Q4:退出matlab7程序運行的快捷鍵。
A: ctrl+q
Q5:matlab7遠程控制是否有限制?
A: 不能遠程控制,不過你可以先在你的remote機器上打開,然后就可以用了。
Q6:Matlab占用資源太多怎么辦?
A: 用matlab -nojvm啟動(如果不需要圖形界面)。
Q7:怎樣給matlab添加新的toolbox?
A: 在matlab的文件菜單里邊添加路徑,選set path。
Q8:請問matlab有沒有命令可以調出歷史輸入啊?
A: command history 窗口。
Q9:matlab 7.0 不能在64位的cpu下運行?
A: matlab 應該是依賴於自己的虛擬機的
但是好像這個虛擬機是在 IA32 里面作出來的,所以,應該找個帶 64 位的
java 虛擬機替換原來的,不過不一定能行 or so,記不清了)
Q10:matlab有沒有注釋一段的功能?
A: 選中一段代碼,ctrl r就是區段注釋
選中一段代碼,ctrl t取消區段注釋
Q11:今有WINDOWS版MATLAB7,啟動時只出現版權畫面,然后進程結束。
A: 用matlab -nojvm可以啟動,但是報了OpenGL錯誤的信息,估計是顯卡比較
差或驅動程序不好。在顯示屬性里關閉硬件加速即可。
1、學會用help和doc函數。
2、輸入輸出文件:save/load
在屏幕上顯示文件:type
3、解線性方程組AX=B:X=A/B
4、作圖時兩張曲線合並:hold on或者subplot作子圖
5、程序計算時間:tic,toc或者clock
6、變量顯示方式更改:format long/short/bank...
7、數組元素求和:sum
8、求數組長度:length
求矩陣維數:size或者ndims 矩陣元素個數:numel
9、函數作圖:
餅圖:pie/pie3 誤差圖:errorbar 散點圖:scatter/scatter3
直方圖:hist 函數圖:fplot 動畫:movie
10、矩陣分析:
左右翻轉:fliplr 上下翻轉:flipud 轉置:transpose
矩陣求逆:inv 矩陣范數:norm 條件數:cond
初等變換:rref 特征值:eig/eigs
11、特殊矩陣:
元素全為1的矩陣:ones 元素全為0的矩陣:zeros
單位陣:eye 魔方陣:magic
線性變化數組:linspace 聚合矩陣:cat/horzcat/vertcat
12、隨機數:
創建一個元素服從均勻分布的隨機數數組:rand
創建一個元素服從正態分布的隨機數數組:randn
二項分布:binornd 指數分布:exprnd F分布:frnd
幾何分布:geornd 超幾何分布:hygernd 泊松分布:poissrnd
正態分布:normrnd 離散均勻分布:unidrnd 連續均勻分布:unifrnd
13、清屏:clc 清理內存:clear
14、字體顯示變更等:preferences
15、得到一個文件夾的所有文件名:ls
16、語句太長的話可以再句末加...換行。
更深層次和更進一步了解MATLAB實際操作應用的可以參考以下的鏈接: