如果運行出現錯誤,matlab會自動停在出錯的那行,並且保存所有相關變量。再也不用設斷點了有沒有!!!
bsxfun
強大的、萬能的、不同維數的矩陣擴展混合運算,從此告別矩陣運算中的for循環
另,matlab裏所有以fun為後綴的命令都很好用,arrayfun,cellfun,structfun,等等
@() 匿名函數
使用函數式編程,在編寫以數學公式為主的程序中比傳統編程方法好得多
set(gca,...)等
所有與畫圖相關的命令都包含了千奇百怪的屬性和參數,非常實用,如著名的 set(gca,...)
$ $
畫圖中的標題、註釋等文字內容是可以直接使用latex格式的,只須在包含latex命令的部分前後用$框起來即可
slice
高維切片,要在三維空間中表現三個以上變量的函數關系,必備此命令
Matlab裏面應該多用向量運算,把循環語句轉變為向量運算會省很多時間,程序也更簡潔易讀。
比方說,壹個名叫array數組裏面,妳要將裏面大於1的都變成0,就不必用到循環:
array(array>1)=0;
把大於1小於3的變成0。
array(and(array>1,array<3))=0;
當然,還可以使用find,這個也很好用。
—————————————————————————————
另壹個重要的技巧是delete/clf-plot-pause
用plot可以畫圖(註意記錄句柄),然後用delete刪掉特定圖象,或用clf清圖,再繪制,這可以在figure窗口產生動畫。但是如果只plot,往往只會在全部程序執行結束時顯示,這時候需要用pause讓figure完成圖像的更新。drawnow貌似也可以,但是我比較喜歡用pause,能夠簡單地控制動畫的速度。
這會方便調試和展示。這個技巧尤其適合使用matlab的圖形用戶界面設計功能時構造壹個顯示運行狀態等信息的figure。
—————————————————————————————
mathworks 有壹個fig函數(不是系統自帶的,是別人編寫的),可以很容易地調整字體、尺寸以及繪圖是否有邊框等等,不必畫出來再自己手動調整。這對於寫論文的人來說會很方便。
——————————————————————————————
善用eval,可以讓妳的程序的靈活度大大加強。尤其是在變量名的問題上。當然,這可能會對代碼維護和調試帶來麻煩。很多情況可以用其他方法代替。 @王備 指出了壹個鏈接,值得壹讀Alternatives to the eval Function
—————————————————————————————
save、load可以將部分或全部變量、結構體等存入mat文件或從mat導入workspace
global可以將變量變為全局變量,在各函數之間***享。不過這不太好用,盡量慎用吧。
——————————————————————————————
exist可以檢測某目標(如變量)是否存在,減少壹些麻煩。
——————————————————————————————
surf、mesh都很漂亮,不過surf之後記得用shading interp,看起來更漂亮。
——————————————————————————————
對於壹些重復性的矩陣賦值,比如:1、2、3、4、1、2、3、4
可以使用repmat,將壹個矩陣重復擴展為更大的矩陣。
——————————————————————————————
很多函數都有高級的用法,當使用到了,但又覺得有點麻煩的時候,不妨help壹下,看看其他的用法。