您好,登錄后才能下訂單哦!
MatLab(Matrix Laboratory),一種以矩陣計算為基礎的交互式程序語言,專門針對科學,工程計算以及繪圖的需求。函數眾多。
常用命令
Esc恢復命令輸入的空白狀態
上下鍵:調出上一行下一行命令
exit/quit退出并關閉Matlab
figure/figure(2)
logo顯示MatLab的Logo
clc清屏
help sqrt
demo
formatcompact
formatloose
cleari, j
clearall
who或whos,檢查工作空間中的變量及其階數
語句的結尾可用回車符或逗號,此時會立即顯示運算結果。如果不希望顯示結果,就以分號結尾。此時運算仍然執行,指示不顯示。
若賦值時,只剩下右側的表達式,而沒有被賦值的變量,則Matlab會自動給出一個臨時變量ans,把運算結果暫存在ans中。
基本語法
Matlab中的變量或常量都代表矩陣,標量應看作1*1階矩陣。
a=[1 23; 4 5 6; 7 8 9],同一行元素之間以逗號或空格分開,不同的行以分號分開。
變量的元素用圓括號()中的數字(下標)來注明,二維的下標以逗號分開。
如果賦值元素的下標超出了原來矩陣的大小,矩陣的行列會自動擴展
給全行賦值,可用冒號 a(5, :)=[5, 4, 3] //[]用來表示矩陣
b =a([2, 4], [1, 3]) //把a的第2,4行及第1,3列交點上的元素取出,構成一個新矩陣b
a([2,4, 5], :)=[] //抽去a中的第2,4,5行,利用空矩陣[]的概念,空矩陣不同于零矩陣
a(2,4) //a矩陣的a[2][4]元素
復數用i或j來表示 c=3+5i
z =[1, 3;5, 7]+[2, 4;6, 8]*i // ‘*’不可省略
w=z' //共軛轉置
w=conj(z) //共軛
w=conj(z)' //轉置
基本矩陣
zeros(m,n), ones(m, n), rand(m, n), linspace(a, b, n), eye(n) //linspace(a, b, n)在a與b之間均勻地產生n個點值,形成1*n維向量; eye產生單位矩陣
大矩陣可由若干個小矩陣組成,但必須行列數正確,恰好填滿全部元素
元素顯示不精確時,可用顯示單個元素的命令來得到它的精確值,或改用長格式(format long)來顯示整個矩陣
[n,m]=size(z) //獲得矩陣階數,若要自己編寫矩陣A和B相加減,必須先求nA,mA,nB,mB,并檢驗是否滿足nA=nB,mA=mB。作相乘時,正好相反
x=[1,2, 3]; y=x-1
l=length(X) //一維數組,length不分行和列
inv(z) //求逆矩陣,z必須為n階方陣
x=inv(D)*B=D\B //把D的逆矩陣左乘B,記作D\, 稱之為左除。
x=B*inv(D)=B/D //把D的逆矩陣右乘B,記作/D, 稱之為右除。
*, \, /, ^, expm, logm, sqrtm是將矩陣作為一個整體進行運算的
+, -, sqrt, exp, log是對矩陣中的元素分別進行的(按元素群運算)
矩陣結構形式的提取與變換
fliplr矩陣左右翻轉fliplr(A),flipud矩陣上下翻轉flipud(A),reshape階數重組, 元素總數不變reshape(A, 2, 6)
rot90矩陣整體反時針旋轉90度rot90(A), diag提取或建立對角陣diag(A), tril取矩陣的左下三角部分tril(A),triu取矩陣的右上三角部分triu(A), :將元素按列取出排成一列B=A(:)'
元素群運算
數組賦值
1) 用兩個冒號組成等增量語句,格式:t=[初值:增量:終值],增量為1 時可以省略
2) 用linspace函數,格式:linspace(初值,終值,點數)
元素群運算也就是矩陣中所有元素按單個元素進行運算。為了與矩陣作為整體的運算符號相區別,要在運算符*,/,\,^前加一點符號‘.’,以表示在作元素群運算。參與運算的兩個矩陣必須是同階的。非方陣不能按整體作矩陣乘冪運算的。
Eg :
x=[0:0.1:pi/4]’;
disp(‘ x sin(x) cos(x) tan(x) ’)
disp([x,sin(x),cos(x),tan(x)])
邏輯判斷
1 數學及邏輯運算符(~=不等于)
2 邏輯字符檢查(all, any, find, isnan, isreal, isstr)
3 位運算
4 集合運算
流程控制語句
1 if語句
1) if(expression) section, end
2) if(expression1) section1, elsesection2, end
3) if(expression1) section1, elseifexpression2 section2, else section3, end
2while語句
while(expression)section, end
3 for 語句
for k=初值:增量:終值 語句組A, end
4 switch語句
switch表達式(標量或字符串)
case 值1
語句組A
case 值2
語句組B
… …
Otherwise
語句組N
end
基本繪圖方法
Graph3d,Graph4d,Graphics,specgraph函數庫
基本作圖函數說明:
Plot繪制連續波形 stem繪制離散波形 subplot一個窗口內繪制多副圖
axis定義x,y軸最大最小值 hold保留目前曲線 grid畫網格線 xlabel/ylabel為x/y軸加上說明
title為圖形加上標題 text在圖上加文字說明 gtext用鼠標拖動來確定標注文字的位置
1直角坐標中的兩維曲線
1) plot(y)輸入一個數組的情況
2) plot(x,y)輸入兩個數組的情況
如果數組x和y具有相同長度,命令plot(x,y)將繪出以x元素為橫坐標,y元素為縱坐標的曲線。
2線形,點型,顏色
Y***m品紅c青r紅g綠b藍w白k黑
.,o,x,+,-,*,: 虛線,-.點劃,- -長劃
Eg: plot(x1, y1, ‘:y’), plot(x2,y2,’+r’)
3多條曲線的繪制
1) plot(t, [y1, y2, …]) 要求所有輸出量有同樣的長度和同樣的自變量向量,不便于用戶自行設定線型和顏色
2) hold命令 坐標選擇要得當,注意及時解除保持狀態hold off
3) 在plot后使用多輸入變量
plot(x1, y1,’+g’, x2, y2,’:r’ …)
4) plotyy命令
plotyy(t,y,t2,y2)
屏幕控制
1 圖形窗的控制
figure創建圖形窗 gcf獲取當前圖形窗的句柄 clf清除當前圖形窗 shg顯示圖形
refresh刷新圖形 close關閉圖形窗 close all關閉所有圖形窗
2 軸系的控制
axes在任意位置創建坐標系 gca獲取當前坐標系的句柄 cla清除當前坐標系 ishold保持當前圖形狀態為真
3 圖形對象
line創建直線 surface創建曲面 patch創建圖形填充塊 light創建照明 p_w_picpath創建圖像
4 圖形句柄操作
5工具
6 其他
subplot(n,m,p):將圖形窗口分為n*m個子圖,在第p個子圖處繪制圖形
其他二維繪圖命令
虛數的繪圖
坐標比例和尺寸的設定---axis命令
圖形窗口中的直接編輯
M文件及程序調試
M文件分兩種:一種是主程序文件(script file),由用戶為解決特定的問題而編制的;另一種是子程序,也稱為函數文件(function file),它必須由其他文件調用
主程序文件
1) 用clear,close all等語句開始,清除掉工作空間中原有的變量和圖形,以避免其它已執行程序殘留數據對本程序的影響。前幾行通常是注釋,說明此程序的用途。注釋必須以%開始。在MatLab中輸入help filename時,屏幕上會將該文件中以%起頭的最前面幾行的內容顯示出來。
2) 程序主體。注意避免中文的字符,否則會引起死機
3) 文件名不要用漢字。避免出現漢字路徑名。
人機交互命令
估值并執行,流程控制語句,程序,函數和變量,變元管理,信息顯示,人機交互命令
pause(n)程序執行到此處,暫停n秒,再繼續執行。如果沒有括號參數,則等待用戶輸入任意鍵后才繼續執行。
keyboard程序執行到此處暫停,在屏幕上顯示字符K,并把程序的輸入和執行權交給用戶。如果需要系統恢復運行原來的程序,只需輸入字符串return。在M文件中設置該命令,有利于進行程序調試,以及臨時修改變量內容。
Ctrl+C強行停止程序運行的命令
函數文件
由function起頭,后跟的函數名必須與文件名相同
有輸入輸出變元(變量),可進行變量傳遞
除非用global聲明,程序中的變量均為局部變量,不保存在工作空間中
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。