1. matlab中一些命令的含義及作用
MATLAB概論 MATLAB是世界流行的優秀科技應用軟體之一。具有功能強大(數值計算、符號計算、圖形生成、文本處理及多種專業工具箱)、界面友好,可二次開發等特點。在國內外,已有許多高等院校將其列為本科生、研究生和博士生必須掌握的基本技能。 1起源與發展 自1984年由美國MathWorks公司推向市場以來,先後發布了多個版本,1993年發布4.0版,1995年發布4.2c版,1996年發布5.0版,1997年發布5.1版,1999年發布5.3版,2000年發布6.0版,目前發布的為6.5版。 2基本組成 MATLAB主要由MATLAB主程序、Simulink動態模擬系統和MATLAB工具箱三大部分組成。其中MATLAB主程序包括MATLAB語言、工作環境、句柄圖形、數學函數庫和應用程序介面五個部分;Simulink是用於動態系統模擬的互動式系統,允許用戶在屏幕上繪制框圖來模擬系統並能動態地控制該系統;工具箱則是MATLAB的基本語句編寫的各種子程序集和函數庫,用於解決某一方面的特定問題或實現某一類的新演算法,是開放的,可以根據需要擴充。 3通用命令 通用命令是在MATLAB命令窗口中直接鍵入並執行。常見的如下表所列。 名稱 功能說明 clear 清除內存中所有的或指定的變數和函數 cd 顯示和改變當前工作目錄 clc 擦除MATLAB工作窗口中所有顯示的內容 clf 擦除MATLAB工作窗口中的圖形 dir 列出當前或指定目錄中的文件清單 disp 在運行中顯示變數或文字內容 echo 控制運行的文字命令是否顯示 hold 控制當前的圖形窗口對象是否被刷新 home 擦除命令窗口中的全部內容 pack 收集內存碎片以擴大內存空間 quit 關閉並退出MATLAB type 顯示所指定文件的全部內容 exit 退出MATLAB 4幫助文件 MATLAB為用戶提供了非常詳盡的幫助文件,最常見的幫助命令是help,直接輸入help則列出全部信息,help後加對象則提示對象幫助信息。 MATLAB的基本矩陣運算 1 簡單矩陣輸入 MATLAB最基本、也是最重要的功能就是進行實數矩陣或者復數矩陣的運算。由於向量可作為矩陣的一行或者一列,標量(一個數)則可以作為只含有一個元素的矩陣,故向量和標量都可以作為特殊矩陣來處理。MATLAB的操作和命令對於矩陣而言,和我們平時使用的形式很相似,但它還有自己的一些規定。 一、鍵盤輸入 對於比較小的簡單矩陣,可以使用鍵盤直接輸入,例如: a=1;b=2;c=3 x=[5 b c;a*b a+c c/b] x = 5.0000 2.0000 3.0000 2.0000 4.0000 1.5000 矩陣生成不但可以使用純數字,也可以使用變數。矩陣的元素直接排列在方括弧內,每行內的元素使用空格或者逗號分開,行與行之間使用分號隔開。大的矩陣可以分行輸入,用回車鍵代替分號,這和我們平時使用的矩陣形式很相近。例如 a=[1 2 3 4 5 6] 大部分的試驗數據使用上面的形式給出的,在處理試驗數據中,可以簡單的將數據前後加入左右括弧,就可以得到矩陣的表示。這種處理可以在腳本文件中進行。 二、矩陣生成 MATLAB提供了很多生成和操作矩陣的函數。下面給出幾個創建矩陣的例子。 如果是線性等間距格式生成矩陣,可以使用from:step:to方式。from、step、to分別表示開始值、步長和結束值。例如 a=1:2:10 a = 1 3 5 7 9 還可以使用linspace命令,如: a=linspace(1,10,5) a = 1.0000 3.2500 5.5000 7.7500 10.0000 linespace的三個參數表示開始值、結束值和數據個數。數據個數可以省略,預設值為100。 在畫Bode圖等應用中,需要使用對數等間隔的數據,可以使用logspace命令生成。Logspace和linspace的參數相同,只是結果不同。 2 矩陣運算 矩陣運算是MATLAB的基礎,MATLAB的矩陣運算功能十分強大,並且運算的形式和一般的數學表示十分相似。 一、矩陣的轉置 矩陣的轉置用符號 』 >>a=[1 2 3;4 5 6] a = 1 2 3 4 5 6 >>b=a' b = 1 4 2 5 3 6 如果矩陣a為復數矩陣,則a』為共軛轉置。 a=[1 2;4 5], d=a+a*i,c1=d',c2=conj(d),
2. matlab軟體中找5個命令,並說明命令的功能
要將用Matlab語言編寫的函數文件編譯成可獨立執行的*.exe文件(即可脫離Matalab環境的執行程序),首先要安裝和配置好Matlab Compiler,一般來說,在安裝Matlab時就已經安裝了相應版本的Matlab Compiler。只是不同版本的Matlab,其編譯器的使用方法有一定的差異,這一點要引起一定的注意。
在確定安裝好Matlab Compiler後,還需要對Compiler進行適當的配置,方法是在Matlab命令窗口輸入:
Mbuild –setup
然後根據提示執行相應的操作,使用者可根據自己計算機中現有編譯器的情況選擇合適的編譯器,如VC++ 6.0、VC++7.0、Bland C的編譯器等,目前Matlab好象還不支持VC++8.0(我計算機安裝的就是VC++2005,Matlab就無法識別)。當然,如果你的計算機里根本就沒有安裝其他任何語言的編譯器,也可選擇Matlab自帶的Lcc編譯器,其實這個編譯器對大多數用戶已經夠用了(我就是選擇的Matlab自帶的Lcc編譯器)。
配置好編譯器後,自然就是對自己編寫的M文件進行編譯了。
將M文件編譯為獨立可執行文件的語法是:
>>mcc –m fun1.m fun2.m…..
其中fun1就是最後的可執行文件的名稱。
另外,也可通過採用命令開關-o指定編譯最終目標文件的名稱,如 mcc –m main.m –o mrank_main,就是將編譯後的文件指定為mrank_main.exe。
編譯後的生成文件根據編譯器的版本不同而不同。具體的可參閱相關資料。
如果要在沒有安裝matlab的計算機上執行編譯後的程序,首先要將\MATLAB701\toolbox\compiler\deploy\win32中的MCRinstaller.exe安裝到該計算機上(7.0以前的版本是mglinstaller.exe)。
其次是要將「MCRinstaller.exe安裝目錄\runtime\win32」這個路徑添加到該計算機的環境變數中,添加的方法是:
右擊「我的電腦」「屬性」「高級」「環境變數」「添加」指定一個變數名,然後將上述路徑復制到裡面就可以了。
第三步是將編譯生成的相相關文件拷貝到同一目錄下(當然其他目錄亦可)。
第四步是打開MS-dos操作窗口,進入到編譯後的*.exe程序所在的目錄,執行編譯生成的*.exe文件即可。
需要說明的一個問題:
如果你的程序還附帶有圖片(如Version上的圖標)、Web頁面(如help文檔),在編譯的時候可能無法與M文件一起編譯(因為我沒有試過,也沒有看到有關這方面的介紹),這沒有關系,先在計算機上執行一次你編譯後生成的獨立可執行文件,這時在同一目錄下會生成一個以你編譯後的程序名+_mcr結尾的文件夾,這時,你只需要把與程序相關的圖標和Web頁面拷貝到該文件夾中的Matlabprogram下面的一個子目錄(一般與用於編譯的文件夾名相同)中即可。
其他的方法還有:(以下是網上搜索到的方法,沒有試驗過,有興趣的朋友可以試一試)
方法一:在matlab下的workspace里打comtool,點file-open project將我們先前建好的comtest.cbl工程文件打開,再點component--package component就實現了打包,此時到comtest\distrib文件夾里看,生成的comtest.exe就是打包後的解壓程序,雙擊它會解壓出一些文件,再點擊解壓出來的_install.bat就可以實現安裝
方法二:如何將gui生成exe ?
已有gui.m文件和gui.fig文件
1 在matlab的command窗口中輸入
mcc -B sgl GUI.m
2.將上步生成的文件包括*.m 文件和*.fig文件一起考到待運行的機器
此時仍需matlab所必需的動態連接庫。
3. 將 /extern/lib/win32/mglinstallar.exel拷貝到到待運行機器上
4.在機器上先運行mglinstallar.exe, 然後選擇解壓目錄,將在指定目錄下解壓縮出bin和toolbox兩子目錄,其中在bin\win32目錄下就是數學庫和圖形庫脫離MATLAB運行所需的所有動態連接庫,共有37個。可以將這些.dll考入system32, 也可以直接放在應用程序目錄下。而toolbox目錄則必須與應用程序同一目錄。
5.大功告成。
方法三:運行mcc -B sgl GUI.m 生成exe文件,把GUI.exe文件和GUI.ctf文件拷貝到目標電腦上,然後在目標電腦上安裝 MCRInstaller.exe ,安裝完以後,我點擊GUI.exe,它顯示:this application has requested the Runtime to terminate it in an unusual way。這個可能是哪裡出錯了呢?
Solution:
The segmentation violation can be caused e to a corruption in either the profile of the current user or by corrupted Windows libraries. In order to determine which is the cause, try logging in as a different username and run MATLAB.
If you are able to successfully launch MATLAB under a different username:
1. Log onto the machine, as the user that is receiving the error.
2. On your desktop, click on Start > Run
3. Type "regedit" in the Open text field and click OK, this will bring up the Registry Editor
4. In the Registry Editor expand the following folders: HKEY_CURRENT_USER > Software > MathWorks > Matlab
5. Under the MATLAB key, find the folder having the same name as the version number of the MATLAB that is crashing; and delete it. This Registry key will be regenerated the next time MATLAB is started.
Click on the link below to view an image of the Registry Editor, which shows how to delete a registry key for MATLAB 6.5 (R13).
After following these steps, you should be able to launch MATLAB successfully.
If MATLAB crashes regardless of the user who is logged in, the crash may be caused by corrupted system libraries. For Windows NT, 2000, or XP, some customers have found that reinstalling Windows Service Packs have resolved the issue
這個是啟動6.5時出類似錯誤的解決方法,你試試7.0可否成功吧
3. matlab 常用命令有哪些
matlab命令
一、常用對象操作:除了一般windows窗口的常用功能鍵外。
1、!dir 可以查看當前工作目錄的文件。 !dir& 可以在dos狀態下查看。
2、who 可以查看當前工作空間變數名, whos 可以查看變數名細節。
3、功能鍵:
功能鍵 快捷鍵 說明
方向上鍵 Ctrl+P 返回前一行輸入
方向下鍵 Ctrl+N 返回下一行輸入
方向左鍵 Ctrl+B 游標向後移一個字元
方向右鍵 Ctrl+F 游標向前移一個字元
Ctrl+方向右鍵 Ctrl+R 游標向右移一個字元
Ctrl+方向左鍵 Ctrl+L 游標向左移一個字元
home Ctrl+A 游標移到行首
End Ctrl+E 游標移到行尾
Esc Ctrl+U 清除一行
Del Ctrl+D 清除游標所在的字元
Backspace Ctrl+H 刪除游標前一個字元
Ctrl+K 刪除到行尾
Ctrl+C 中斷正在執行的命令
4、clc可以命令窗口顯示的內容,但並不清除工作空間。
二、函數及運算
1、運算符:
+:加, -:減, *:乘, /: 除, \:左除 ^: 冪,『:復數的共軛轉置, ():制定運算順序。
2、常用函數表:
sin( ) 正弦(變數為弧度)
Cot( ) 餘切(變數為弧度)
sind( ) 正弦(變數為度數)
Cotd( ) 餘切(變數為度數)
asin( ) 反正弦(返回弧度)
acot( ) 反餘切(返回弧度)
Asind( ) 反正弦(返回度數)
acotd( ) 反餘切(返回度數)
cos( ) 餘弦(變數為弧度)
exp( ) 指數
cosd( ) 餘弦(變數為度數)
log( ) 對數
acos( ) 余正弦(返回弧度)
log10( ) 以10為底對數
acosd( ) 余正弦(返回度數)
sqrt( ) 開方
tan( ) 正切(變數為弧度)
realsqrt( ) 返回非負根
tand( ) 正切(變數為度數)
abs( ) 取絕對值
atan( ) 反正切(返回弧度)
angle( ) 返回復數的相位角
atand( ) 反正切(返回度數)
mod(x,y) 返回x/y的余數
sum( ) 向量元素求和
3、其餘函數可以用help elfun和help specfun命令獲得。
4、常用常數的值:
pi 3.1415926…….
realmin 最小浮點數,2^-1022
i 虛數單位
realmax 最大浮點數,(2-eps)2^1022
j 虛數單位
Inf 無限值
eps 浮點相對經度=2^-52
NaN 空值
三、數組和矩陣:
1、構造數組的方法:增量發和linspace(first,last,num)first和last為起始和終止數,num為需要的數組元素個數。
2、構造矩陣的方法:可以直接用[ ]來輸入數組,也可以用以下提供的函數來生成矩陣。
ones( ) 創建一個所有元素都為1的矩陣,其中可以制定維數,1,2….個變數
zeros() 創建一個所有元素都為0的矩陣
eye() 創建對角元素為1,其他元素為0的矩陣
diag() 根據向量創建對角矩陣,即以向量的元素為對角元素
magic() 創建魔方矩陣
rand() 創建隨機矩陣,服從均勻分布
randn() 創建隨機矩陣,服從正態分布
randperm() 創建隨機行向量
horcat C=[A,B],水平聚合矩陣,還可以用cat(1,A,B)
vercat C=[A;B],垂直聚合矩陣, 還可以用cat(2,A,B)
repmat(M,v,h) 將矩陣M在垂直方向上聚合v次,在水平方向上聚合h次
blkdiag(A,B) 以A,和B為塊創建塊對角矩陣
length 返回矩陣最長維的的長度
ndims 返回維數
numel 返回矩陣元素個數
size 返回每一維的長度,[rows,cols]=size(A)
reshape 重塑矩陣,reshape(A,2,6),將A變為2×6的矩陣,按列排列。
rot90 旋轉矩陣90度,逆時針方向
fliplr 沿垂軸翻轉矩陣
flipud 沿水平軸翻轉矩陣
transpose 沿主對角線翻轉矩陣
ctranspose 轉置矩陣,也可用A』或A.』,這僅當矩陣為復數矩陣時才有區別
inv 矩陣的逆
det 矩陣的行列式值
trace 矩陣對角元素的和
norm 矩陣或矢量的范數,norm(a,1),norm(a,Inf)…….
normest 估計矩陣的最大范數矢量
chol 矩陣的cholesky分解
cholinc 不完全cholesky分解
lu LU分解
luinc 不完全LU分解
qr 正交分解
kron(A,B) A為m×n,B為p×q,則生成mp×nq的矩陣,A的每一個元素都會乘上B,並占據p×q大小的空間
rank 求出矩陣的刺
pinv 求偽逆矩陣
A^p 對A進行操作
A.^P 對A中的每一個元素進行操作
四、數值計算
1、線性方程組求解
(1)AX=B的解可以用X=A\B求。XA=B的解可以用X= A/B求。如果A是m×n的矩陣,當m=n時可以找到唯一解,m<n,不定解,解中至多有m個非零元素。如果m>n,超定系統,至少找到一組解。如果A是奇異的,且AX=B有解,可以用X=pinv(A)×B返回最小二乘解
(2)AX=b, A=L×U,[L,U]=lu(A), X=U\(L\b),即用LU分解求解。
(3)QR(正交)分解是將一矩陣表示為一正交矩陣和一上三角矩陣之積,A=Q×R[Q,R]=chol(A), X=Q\(U\b)
(4)cholesky分解類似。
2、特徵值
D=eig(A)返回A的所有特徵值組成的矩陣。[V,D]=eig(A),還返回特徵向量矩陣。
3、A=U×S×UT,[U,S]=schur(A).其中S的對角線元素為A的特徵值。
4、多項式Matlab裡面的多項式是以向量來表示的,其具體操作函數如下:
conv 多項式的乘法
deconv 多項式的除法,【a,b】=deconv(s),返回商和余數
poly 求多項式的系數(由已知根求多項式的系數)
polyeig 求多項式的特徵值
Polyfit(x,y,n) 多項式的曲線擬合,x,y為被擬合的向量,n為擬合多項式階數。
polyder 求多項式的一階導數,polyder(a,b)返回ab的導數
[a,b]=polyder(a,b)返回a/b的導數。
polyint 多項式的積分
polyval 求多項式的值
polyvalm 以矩陣為變數求多項式的值
resie 部分分式展開式
roots 求多項式的根(返回所有根組成的向量)
註:用ploy(A)求出矩陣的特徵多項式,然後再求其根,即為矩陣的特徵值。
5、插值常用的插值函數如下:
griddata 數據網格化合曲面擬合
Griddata3 三維數據網格化合超曲面擬合
interp1 一維插值(yi=interp1(x,y,xi,』method』)Method=nearest/linear/spline/pchip/cubic
Interp2 二維插值zi=interp1(x,y,z,xi,yi』method』),bilinear
Interp3 三維插值
interpft 用快速傅立葉變換進行一維插值,help fft。
mkpp 使用分段多項式
spline 三次樣條插值
pchip 分段hermit插值
6、函數最值的求解
fminbnd(『f』,x1,x2,optiset(,))求f在 x1和x2之間的最小值。Optiset選項可以有『Display』+『iter』/』off』/』final』,分別表示顯示計算過程/不顯示/只顯示最後結果。fminsearch求多元函數的最小值。fzero(『f』,x1)求一元函數的零點。X1為起始點。同樣可以用上面的選項。
五、圖像繪制:
1、基本繪圖函數
plot 繪制二維線性圖形和兩個坐標軸
plot3 繪制三維線性圖形和兩個坐標軸
fplot 在制定區間繪制某函數的圖像。fplot(『f』,區域,線型,顏色)
loglog 繪制對數圖形及兩個坐標軸(兩個坐標都為對數坐標)semilogx 繪制半對數坐標圖形
semilogy 繪制半對數坐標圖形
2、線型: 顏色 線型
y 黃色 . 圓點線 v 向下箭頭
g 綠色 -. 組合 > 向右箭頭
b 藍色 + 點為加號形 < 向左箭頭
m 紅紫色 o 空心圓形 p 五角星形
c 藍紫色 * 星號 h 六角星形
w 白色 . 實心小點 hold on 添加圖形
r 紅色 x 叉號形狀 grid on 添加網格
k 黑色 s 方形 - 實線
d 菱形 -- 虛線 ^ 向上箭頭
3、可以用subplot(3,3,1)表示將繪圖區域分為三行三列,目前使用第一區域。此時如要畫不同的圖形在一個窗口裡,需要hold on。
4. 繪圖的matlab命令有哪些
選擇圖形窗口命令
1.打開不同的圖形窗口命令 figure
figure(1);
figure(2);
figure(n);用來打開不同的圖形窗口,以便繪制不同的圖形
2.圖形窗口拆分命令 subplot
subplot(m,n,p):分割圖形顯示窗口,m表示上下分割個數,n表示左右分割個數,p表示子圖編號
坐標軸相關命令
1.axis([xmin xmax ymin ymax])
表示x軸最小值最大值,y軸最小值最大值
2.axis equal 使x,y軸的單位長度相同
3.axis square 出圖為正方形
4.axis off 清除坐標刻度
5.semilogx,semilogy 繪制以x/y軸為對數坐標,以10為底,y/x軸為線性坐標的半對數坐標圖形
6.loglog 繪制全對數坐標圖,即x,y軸全取對數
文字標示命令
1.text(x,y,『字元串』) 在圖形的指定坐標(x,y)處表示』字元串』中的內容
2.gtext('說明文字』)利用滑鼠在圖形的某一位置標示說明文字。執行完繪圖命令後再執行gtext('說明文字『)命令
3.title('字元串』)圖形標題
4.xlabel('字元串『),ylabel(『字元串』),zlabel('字元串』),設置x,y,z軸的坐標軸名稱。如需輸入特殊文字,用\開頭
5.legend(『字元串1』,『字元串1』,『字元串1』……)對圖形上多條線按照繪圖順序進行說明
柵格
1.grid 給圖形加柵格
2.grid on 給坐標系加柵格
3.grid off 刪除當前坐標系的柵格
圖形覆蓋/保持
1.hold on 當前圖形保持,且下條圖形仍然繪制在該張圖形上
2.hold off 新圖覆蓋舊圖
離散數據處理
1.bax(x,y)繪制高度條形圖
2.hist(y,x) 繪制x在以y為中心的區間中分布的個數條形圖
3.stairs(x,y)繪制梯形圖
4.stem(x,y)繪制散點圖
5. MATLAB中的常用清除命令有哪些
方法/步驟
1
安裝並打開MATLAB軟體
2
常用清除clc命令,即可清空命令窗口中的內容。
3
常用clf命令:清除當前figure中的內容,前後對比圖如圖
4
常用close命令:關閉當前打開的figure圖形界面
5
常用clear命令:清空workspace中的變數
6
常用exit命令:退出MATLAB,執行後直接退出軟體
6. matlab清屏命令有哪些
介紹 matlab 中三種不同的清理變數、顯示窗口或圖形的命令。 一、比較重要的清理:清除變數命令:clear說明:運行m文件之前一般都需要該命令,否則可能出錯。 二、比較常用的清理:清理當前命令窗口命令:clc說明:clc 代表 clear command window,即清空當前的 command window窗口,也就是清屏。注意,只是清屏,而並未清除內存中的變數。 三、另外一種清理:清除當前激活的figure命令:clf
7. matlab使用什麼命令設置當前目錄
摘要 您好,努力解答小主疑惑的飯小希很高興為您服務,感謝茫茫人海中選擇我為你解答
8. MATLAB 中有哪些命令,讓人相見恨晚
一、常用對象操作:除了一般windows窗口的常用功能鍵外。
1、!dir 可以查看當前工作目錄的文件。 !dir& 可以在dos狀態下查看。
2、who 可以查看當前工作空間變數名, whos 可以查看變數名細節。
3、功能鍵:
功能鍵 快捷鍵 說明
方向上鍵 Ctrl+P 返回前一行輸入
方向下鍵 Ctrl+N 返回下一行輸入
方向左鍵 Ctrl+B 游標向後移一個字元
方向右鍵 Ctrl+F 游標向前移一個字元
Ctrl+方向右鍵 Ctrl+R 游標向右移一個字元
Ctrl+方向左鍵 Ctrl+L 游標向左移一個字元
home Ctrl+A 游標移到行首
End Ctrl+E 游標移到行尾
Esc Ctrl+U 清除一行
Del Ctrl+D 清除游標所在的字元
Backspace Ctrl+H 刪除游標前一個字元 Ctrl+K 刪除到行尾
Ctrl+C 中斷正在執行的命令
4、clc可以命令窗口顯示的內容,但並不清除工作空間。
二、函數及運算
1、運算符:
+:加, -:減, *:乘, /: 除, \:左除 ^: 冪,『:復數的共軛轉置, ():制定運算順序。
2、常用函數表:
sin( ) 正弦(變數為弧度)
Cot( ) 餘切(變數為弧度)
sind( ) 正弦(變數為度數)
Cotd( ) 餘切(變數為度數)
asin( ) 反正弦(返回弧度)
acot( ) 反餘切(返回弧度)
Asind( ) 反正弦(返回度數)
acotd( ) 反餘切(返回度數)
cos( ) 餘弦(變數為弧度)
exp( ) 指數
cosd( ) 餘弦(變數為度數)
log( ) 對數
acos( ) 余正弦(返回弧度)
log10( ) 以10為底對數
acosd( ) 余正弦(返回度數)
sqrt( ) 開方
tan( ) 正切(變數為弧度)
realsqrt( ) 返回非負根
tand( ) 正切(變數為度數)
abs( ) 取絕對值
atan( ) 反正切(返回弧度)
angle( ) 返回復數的相位角
atand( ) 反正切(返回度數)
mod(x,y) 返回x/y的余數
sum( ) 向量元素求和
3、其餘函數可以用help elfun和help specfun命令獲得。
4、常用常數的值:
pi 3.1415926…….
realmin 最小浮點數,2^-1022
i 虛數單位
realmax 最大浮點數,(2-eps)2^1022
j 虛數單位
Inf 無限值
eps 浮點相對經度=2^-52
NaN 空值
三、數組和矩陣:
1、構造數組的方法:增量發和linspace(first,last,num)first和last為起始和終止數,num為需要的數組元素個數。
2、構造矩陣的方法:可以直接用[ ]來輸入數組,也可以用以下提供的函數來生成矩陣。
ones( ) 創建一個所有元素都為1的矩陣,其中可以制定維數,1,2….個變數
zeros() 創建一個所有元素都為0的矩陣
eye() 創建對角元素為1,其他元素為0的矩陣
diag() 根據向量創建對角矩陣,即以向量的元素為對角元素
magic() 創建魔方矩陣
rand() 創建隨機矩陣,服從均勻分布
randn() 創建隨機矩陣,服從正態分布
randperm() 創建隨機行向量
horcat C=[A,B],水平聚合矩陣,還可以用cat(1,A,B)
vercat C=[A;B],垂直聚合矩陣, 還可以用cat(2,A,B)
repmat(M,v,h) 將矩陣M在垂直方向上聚合v次,在水平方向上聚合h次
blkdiag(A,B) 以A,和B為塊創建塊對角矩陣
length 返回矩陣最長維的的長度
ndims 返回維數
numel 返回矩陣元素個數
size 返回每一維的長度,[rows,cols]=size(A)
reshape 重塑矩陣,reshape(A,2,6),將A變為2×6的矩陣,按列排列。
rot90 旋轉矩陣90度,逆時針方向
fliplr 沿垂軸翻轉矩陣
flipud 沿水平軸翻轉矩陣
transpose 沿主對角線翻轉矩陣
ctranspose 轉置矩陣,也可用A』或A.』,這僅當矩陣為復數矩陣時才有區別
inv 矩陣的逆
det 矩陣的行列式值
trace 矩陣對角元素的和
norm 矩陣或矢量的范數,norm(a,1),norm(a,Inf)…….
normest 估計矩陣的最大范數矢量
chol 矩陣的cholesky分解
cholinc 不完全cholesky分解
lu LU分解
luinc 不完全LU分解
qr 正交分解
kron(A,B) A為m×n,B為p×q,則生成mp×nq的矩陣,A的每一個元素都會乘上B,並占據p×q大小的空間
rank 求出矩陣的刺
pinv 求偽逆矩陣
A^p 對A進行操作
A.^P 對A中的每一個元素進行操作
四、數值計算
1、線性方程組求解
(1)AX=B
的解可以用X=A\B求。XA=B的解可以用X=
A/B求。如果A是m×n的矩陣,當m=n時可以找到唯一解,m<n,不定解,解中至多有m個非零元素。如果m>n,超定系統,至少找到一組
解。如果A是奇異的,且AX=B有解,可以用X=pinv(A)×B返回最小二乘解
(2)AX=b, A=L×U,[L,U]=lu(A), X=U\(L\b),即用LU分解求解。
(3)QR(正交)分解是將一矩陣表示為一正交矩陣和一上三角矩陣之積,A=Q×R[Q,R]=chol(A), X=Q\(U\b)
(4)cholesky分解類似。
2、特徵值
D=eig(A)返回A的所有特徵值組成的矩陣。[V,D]=eig(A),還返回特徵向量矩陣。
3、A=U×S×UT,[U,S]=schur(A).其中S的對角線元素為A的特徵值。
4、多項式Matlab裡面的多項式是以向量來表示的,其具體操作函數如下:
conv 多項式的乘法
deconv 多項式的除法,【a,b】=deconv(s),返回商和余數
poly 求多項式的系數(由已知根求多項式的系數)
polyeig 求多項式的特徵值
Polyfit(x,y,n) 多項式的曲線擬合,x,y為被擬合的向量,n為擬合多項式階數。
polyder 求多項式的一階導數,polyder(a,b)返回ab的導數
[a,b]=polyder(a,b)返回a/b的導數。
polyint 多項式的積分
polyval 求多項式的值
polyvalm 以矩陣為變數求多項式的值
resie 部分分式展開式
roots 求多項式的根(返回所有根組成的向量)
註:用ploy(A)求出矩陣的特徵多項式,然後再求其根,即為矩陣的特徵值。
5、插值常用的插值函數如下:
griddata 數據網格化合曲面擬合
Griddata3 三維數據網格化合超曲面擬合
interp1 一維插值(yi=interp1(x,y,xi,』method』)Method=nearest/linear/spline/pchip/cubic
Interp2 二維插值zi=interp1(x,y,z,xi,yi』method』),bilinear
Interp3 三維插值
interpft 用快速傅立葉變換進行一維插值,help fft。
mkpp 使用分段多項式
spline 三次樣條插值
pchip 分段hermit插值
6、函數最值的求解
fminbnd(『f』,x1,x2,optiset(,))
求f在
x1和x2之間的最小值。Optiset選項可以有『Display』+『iter』/』off』/』final』,分別表示顯示計算過程/不顯示/只顯
示最後結果。fminsearch求多元函數的最小值。fzero(『f』,x1)求一元函數的零點。X1為起始點。同樣可以用上面的選項。
五、圖像繪制:
1、基本繪圖函數
plot 繪制二維線性圖形和兩個坐標軸
plot3 繪制三維線性圖形和兩個坐標軸
fplot 在制定區間繪制某函數的圖像。fplot(『f』,區域,線型,顏色)
loglog 繪制對數圖形及兩個坐標軸(兩個坐標都為對數坐標)semilogx 繪制半對數坐標圖形
semilogy 繪制半對數坐標圖形
2、線型: 顏色 線型
y 黃色 . 圓點線 v 向下箭頭
g 綠色 -. 組合 > 向右箭頭
b 藍色 + 點為加號形 < 向左箭頭
m 紅紫色 o 空心圓形 p 五角星形
c 藍紫色 * 星號 h 六角星形
w 白色 . 實心小點 hold on 添加圖形
r 紅色 x 叉號形狀 grid on 添加網格
k 黑色 s 方形 - 實線
d 菱形 -- 虛線 ^ 向上箭頭
3、可以用subplot(3,3,1)表示將繪圖區域分為三行三列,目前使用第一區域。此時如要畫不同的圖形在一個窗口裡,需要hold on。
9. matlab軟體的矩陣常用指令介紹
方法/步驟
1、單位矩陣創建
在線性代數運算時,常需要單位矩陣E,在matlab中可使用eyes函數,如下所示即為其語法:
Y
=
eye(n)
Y
=
eye(m,n)
Y
=
eye([m
n])
Y
=
eye(size(A))
Y
=
eye
Y
=
eye(m,
n,
classname)
作為示例,常用Y
=
eye(n)指令,比如要3x3單位矩陣,則可以如下指令:
>>
Y
=
eye(3)
輸出:
Y
=
1
0
0
0
1
0
0
0
1
2、全零矩陣
在線性代數運算時,有時候需要全零矩陣,可使用zeros函數。
B
=
zeros(n)
B
=
zeros(m,n)
B
=
zeros([m
n])
B
=
zeros(m,n,p,...)
B
=
zeros([m
n
p
...])
B
=
zeros(size(A))
Y
=
zeros
zeros(m,
n,...,classname)
zeros([m,n,...],classname)
以上是其全部語法,常用的指令是:B
=
zeros(n)與
B
=
zeros(m,n)如下:
>>
B
=
zeros(3)
輸出:
B
=
0
0
0
0
0
0
0
0
0
3、元素全為1陣
在矩陣運算時,會遇到元素全為1矩陣,此時可以藉助於ones函數。
Y
=
ones(n)
Y
=
ones(m,n)
Y
=
ones([m
n])
Y
=
ones(m,n,p,...)
Y
=
ones([m
n
p
...])
Y
=
ones(size(A))
Y
=
ones
ones(m,
n,...,classname)
ones([m,n,...],classname)
如上是其全部語法,其中常用的還是:Y
=
ones(n)
與
Y
=
ones(m,n)
如下示例:
>>
Y
=
ones(3)
輸出:
Y
=
1
1
1
1
1
1
1
1
1
4、隨機矩陣
在概率分析或是數理推斷時常需要藉助隨機矩陣,在matlab中可使用rand函數實現,其語法如下:
r
=
rand(n)
r
=
rand(m,n)
r
=
rand([m,n])
r
=
rand(m,n,p,...)
r
=
rand([m,n,p,...])
r
=
rand
r
=
rand(size(A))
r
=
rand(...,
'double')
r
=
rand(...,
'single')
當然,常用的指令還是:
r
=
rand(n)
和
r
=
rand(m,n)
示例:
>>
r
=
rand(3,2)
輸出的是3行2列的隨機矩陣:
r
=
0.8147
0.9134
0.9058
0.6324
0.1270
0.0975
5、對角陣
在矩陣分析與計算時,尤其是計算矩陣的秩時,常會化簡矩陣為對角陣,尤其是方陣分析。在matlab中可藉助diag函數求特定矩陣的對角陣,如下示例:
>>
A
=
[1,2,3;
4,5,6;
7,8,9];
輸入的矩陣A是3x3方陣,輸入如下指令:
>>
diag(A)
函數輸出如下圖所示:
6、提取矩陣三角部分
有時候需要提取矩陣的下三角亦或是下三角元素,可以使用tril或triu提取。
輸入矩陣:
>>
A
=
[1,2,3;
4,5,6;
7,8,9];
下三角提取:
>>
trilow
=
tril(A)
輸出:
trilow
=
1
0
0
4
5
0
7
8
9
上三角提取:
>>
triup
=
triu(A)
輸出:
triup
=
1
2
3
0
5
6
0
0
9
7、其它
作為矩陣運算實驗室,matlab提供許多矩陣運算指令例如矩陣翻轉指令flipud、fliplr,矩陣重排reshape、矩陣求秩rank等,大家可以查閱幫助文件了解其語法。