Matlab學習筆記

2023-01-02 01:54:05 字數 4185 閱讀 2872

1. matlab程式設計經驗: 1

2. 如何實現換行 7

3. 快速定位前面執行過的命令 8

4. strfind命令 8

5. findstr命令 9

6. reshape命令 10

7. isequal與isequalwithequalnans命令 10

8. spones命令 12

9. atan2命令 13

10. rat, rats的用法及區別 14

11. format的用法 15

12. cd命令的用法 18

13. fplot命令的用法 19

14. ezplot的用法 22

15. ezplot3命令 25

16. ezpolar命令 27

17. mesh, meshc, meshz命令 29

18. contour, contourf的用法 31

19. 求差分命令diff的用法 35

20. 數值梯度gradient命令的用法 36

21. 繪製向量分布圖quiver命令的用法 38

22. surf, surfc命令的用法 40

23. ezsurf命令的用法 43

24. plotyy的用法 45

25. 函式控制代碼 function_handle (@) 47

26. isa命令的用法 49

27. ezmesh命令的用法 50

28. 匿名函式 anonymous functions 53

29. ezpolar命令的用法 61

30. polar命令的用法 62

程式運算優先順序依次是:算術運算,關係運算,邏輯運算。

多條命令可以寫在同一行,只需要用逗號或分號將它們隔開;

有時某些命令或者資料在一行不能全部顯示,或者是為了形式上的美觀,我們可以在必要的地方加上續行符(「…」),當然乙個數字或者字串(變數名或者函式名等)不能斷成兩行;

編寫的程式中,需要加上某些注釋,只需在文件前面加上注釋符(「%」)即可。注意新的注釋行前不能用續行符,只能用注釋符%;

與c不同的是,在switch結構中,如果第乙個case條件滿足,那麼執行完對應的語句體後直接執行end後的語句,而不再判斷其它case。

可以借鑑的效率優化建議:

**向量化,即將for、while迴圈轉為矩陣的按位運算

預分配足夠大的陣列,而不是在for、while迴圈中增加陣列的空間大小;

對不可避免且耗時很大的迴圈操作可以嘗試在mex檔案內實現

盡量避免更改變數的資料型別或維數,如有需要,建議事先建立乙個新的變數;

盡量避免實數和複數之間的相互賦值;

盡量採用實數運算,對複數運算可以轉換為多個實數運算,由此能夠提公升效率;

合理使用邏輯運算,注意&、|和&&、||的差別,一般地,&&、||具有更高的效率;

盡量採用函式而不是指令碼檔案,一般地函式檔案的執行效率要高於指令碼;

盡量使用load、s**e而不是檔案i/o操作函式。

除錯函式

matlab內建了一系列的除錯函式,用於程式執行過程相關的顯示、執行中斷、斷點設定、單步執行操作等。通過在matlab命令視窗輸入以下指令:

>> help debug

使用者可以查詢到這些除錯函式,它們均以db開頭,

縮排:良好的縮排格式為使用者提供了清晰的程式結構。程式設計時應該使用不同的縮排量,以使程式顯得錯落有致。

增加縮排量用ctrl+]鍵,減少縮排量用ctrl+[鍵。當一大段程式比較亂的時候,使用smart indent (聰明的縮排,快捷鍵ctrl+i)也是一種很好的選擇。

除錯功能

m程式偵錯程式的熱鍵設定和vc的設定有些類似,如果使用者有其它語言的程式設計除錯經驗,則除錯m程式顯得相當簡單。因為它沒有指標的概念,這樣就避免了一大類難以查詢的錯誤。不過m程式可能會經常出現索引錯誤,如果設定了stop if error(breakpoints選單下),則程式的執行會停在出錯的位置,並在matlab命令列視窗顯示出錯資訊。

下面列出了一些常用的除錯方法。

(1) 設定或清除斷點:使用快捷鍵f12。

(2) 執行:使用快捷鍵f5。

(3) 單步執行:使用快捷鍵f10。

(4) step in:當遇見函式時,進入函式內部,使用快捷鍵f11。

(5) step out:執行流程跳出函式,使用快捷鍵shift+f11。

(6) 執行到游標所在位置:非常遺憾這項功能沒有快捷鍵,只能使用選單來完成這樣的功能。

(7) 觀察變數或表示式的值:將滑鼠放在要觀察的變數上停留片刻,就會顯示出變數的值,當矩陣太大時,只顯示矩陣的維數。

(8) 退出除錯模式:沒有設定快捷鍵,使用選單或者快捷按鈕來完成。

設定路徑:在執行程式之前,必須設定好matlab的工作路徑,使得所要執行的程式及執行程式所需要的其他檔案處在當前目錄之下,只有這樣,才可以使程式得以正常執行。否則可能導致無法讀取某些系統檔案或資料,從而程式無法執行。

通過cd指令在命令視窗中可以更改、顯示當前工作路徑。

比如:>> cd

c:\documents and settings\administrator\桌面

>> cd d:\

>> cd

d:\ 關於全域性變數:

在定義和使用全域性變數時,應注意:

全域性變數列表中各個變數名不能用逗號分隔。例如:使用global a b c,d命令matlab編譯器會認為a,b,c三個變數為全域性變數,而d是使用者想顯示的變數,從而出現不希望的結果。

全域性變數在使用前必須在matlab工作空間中定義。在某乙個具體的matlab函式中如果要使用全域性變數必須在函式前面用global命令宣告,否則在該函式即使使用了該變數名,也會被看作區域性變數使用。

為保證函式的獨立性,一般情況下不使用全域性變數

常用的人機互動命令

(1)單變數輸入命令

格式:變數名=input(『提示語句』)

例如:x=input(『請輸入數值:』)

例:用一m檔案接受鍵盤輸入的資料並求其平方值。

%this program is for square

n=input('enter a number')

n*n(2)鍵盤控制命令

格式:keyboard

說明:程式在此處暫停執行,使用者可輸入多行命令,最後輸入return返回

(3)暫停命令

格式:pause %暫停,直到按任意鍵

pause(n) %暫停n秒

(4)命令顯示控制語句

格式:echo on(off)

說明:控制是否在螢幕上顯示程式內容。

(5)按鍵控制命令

格式:waitforbuttonpress

說明:暫停,直至使用者按滑鼠鍵或鍵盤鍵。

(6) 輸入選單的使用

格式:變數名=menu(『提示』,『s1』,『s2』,…)

注:s1,s2…為選單選項。

該語句常用於需要使用者控制程式的流向的場合。

例如:r=menu('使用者選擇','順序','分支','迴圈')

若使用者選擇分支,則r=2

例:現有四個數0、2、4、8,根據使用者選擇決定究竟取哪乙個數,並求其平方值。

r=menu('choose','0','2','4','8')

r*r(7) 數字與字串的輸出

格式: disp(s)

注:s為字串或數字變數

例:s1='how ', s2='are ' , s3='you.'

disp([s1 s2 s3])

(8) 注釋語句的輸入

利用%對語句進行注釋,以便使用中和修改時參考。

若要檢視程式中的注釋語句,則輸入:help 檔名

當只有乙個輸出時,meshgrid得到的是將行向量沿縱向重複排列的結果

>> x=meshgrid(1:3,2:4)

x = 1 2 3

1 2 3

1 2 3

>> [x,y]=meshgrid(1:3,2:4)

x = 1 2 3

1 2 3

MATLAB筆記精華總結

1 命令集合 2 1.1 資料格式命令 2 1.2 工作空間管理命令 3 1.3 目錄檔案管理命令 4 1.4 優先級別排序 4 1.5 矩陣算術運算子 5 1.6 陣列算術運算子 5 1.7 矩陣生成函式 5 1.8 邏輯運算函式 6 1.9 基本數學函式 7 2.0 多項式函式 9 2.1 多項...

學習MATLAB感想

學習了matlab這門課程,我了解該軟體的基本功能,也知道了該軟體在我們生活中的重要地位。隨著社會的不斷發展,科技的不斷進步,計算機的普及,它也被應用在越來越多的方面。matlab的基本資料單位是矩陣,它的指令表示式與數學 工程中常用的形式十分相似,故用matlab來解算問題要比用c,fortran...

matlab學習總結

matlab總結 一 matlab常用函式 1 特殊變數與常數 2 操作符與特殊字元 3 基本數學函式 4 基本矩陣和矩陣操作 5 數值分析和傅利葉變換 6 多項式與插值 7 繪圖函式 二 matlab工作間常用命令 1 常用的視窗命令 2 有關檔案及其操作的語句 3 啟動與退出的命令 4 管理變數...