感謝關注matlab愛好者公眾號!如果公眾號文章對您有幫助,別忘了點擊分享和「在看」哦!若您對公眾號有什麼意見或建議,請在公眾號中回復或在任意文章底部留言!
今天給大家介紹一些編程小技巧,之前給大家介紹過matlab編程小技巧,本期是在之前的基礎之上做了修正和補充完善,下面一起來看看吧。1、能用矩陣計算的就用矩陣計算,不能用矩陣計算的想方設法也要往矩陣計算上靠。
2、少用循環,尤其是避免多重循環嵌套,儘量用向量化的運算來代替循環操作。在必須使用多重循環的情況下,若各層循環執行的次數不同,則在循環的外層執行循環次數少的,內層執行循環次數多的。
3、在定義數組變量時先預定義數組的大小能大大提高計算效率。
4、對於多核CPU,使用parfor比用for更節約時間。
5、定義循環變量時,儘量不要使用i和j,因為i和j是matlab預留的虛數單位。
6、在m文件前面使用clear,close,clc等命令可以釋放內存、清理窗口。
7、對於三角函數計算,在系統默認函數前後面加"d"是直接進行角度計算,這裡"d"代表"degree",例如sind(30) = 0.5,效果與sin(30*pi/180)一樣,其他的有cosd、tand等。
8、在程序運行結束後,使用clearvars可以清掉不需要的變量而保留結果變量,例如,clearvars -except varA varB,意思是清除變量空間中除了變量varA,varB以外的所有變量。
9、使用Ctrl+C可以中止正在運行的程序。
10、doc + 函數名,直接打開相應函數的matlab幫助文檔。help + 函數名,在命令窗口中顯示相應函數的幫助信息。
11、在M腳本編輯器或在命令窗口中按"Tab"鍵可以補全函數名或變量名。
12、選中代碼按"Ctrl + R"鍵是一鍵注釋代碼,選中代碼按"Ctrl + T"鍵是一鍵取消注釋。
13、選中代碼按"Ctrl + I"鍵是一鍵智能對齊代碼。
14、在進行繪圖操作時,多使用figure命令,其作用是新建一個空的繪圖窗口,接下的繪圖命令可以將圖繪製在它裡面,而不會覆蓋其他繪圖窗口。
15、在命令窗口輸入edit或open+函數名可以快速打開m文件。
16、元胞數組可以存儲不同類型和大小的數據。
17、使用單精度 single替代雙精度 double可以節約內存開銷。
18、matlab 輸入Å (埃,Angstrom),示例: xlabel(' length(\AA)','interpreter','latex').
19、在matlab中顯示上下標,上標用'^',下標用'_'.
20、在matlab中輸入希臘字母及特殊字符,採用'\+字母或字符讀音',如: α \alpha.
21、成對符如括號、引號等的自動補全,matlab腳本編輯器本身不帶成對符自動補全的自動補全功能,不過可以通過輸入法設置就可以實現自動補全功能。如手心輸入法,打開「設置」,在「按鍵」下找到「智能符號設置」,勾選自動補全成對符,在編輯腳本打開此輸入法即可。
22、通過mat2cell命令可以方便快捷地將大矩陣劃分成一個個矩陣,通過使用cellfun命令可以快速對各個小矩陣進行各種處理。
23、對於安裝了支持GPU計算的計算機,可以通過gpuArray來快速使用GPU進行計算。當然對於數據量較小時,gpuArray的效率也不是太高,gpuArray.函數名可以調用一些內置的函數進行GPU計算,如果gpuArray.zeros(100,100)可以在GPU中生成100*100大小的0方陣。
24、計算完成後,使用save()函數將數據保存成本地mat文件,常用格式為 ① save('filename', 'var1', 'var2', ...):保存指定的變量在 filename 指定的文件中、② save matname var1 var2 .。
25、使用tic和toc命令可以獲取程序運行所花時間。也可以與if判斷語句相結合通過判斷運行時間來終端程序運行。示例:
for k = 1:1000
tic;
tmp = rand(k);
tm = toc;
% tmp語句運行時間超過0.001時程序就會跳出循環。
if tm > 0.001
break;
end
end
26、對多矩陣求和(sum)、平均值(mean)、最大值(max)等時,可以用冒號(:)符來直接取所有元素,而不是用這些命令嵌套。示例:x = rand(3,4,2,2),對x求和。使用嵌套的話要用四次sum,即sum(sum(sum(sum(x)))),而用冒號表達式則只需用一次,即sum(x(:))。這樣不僅使代碼簡潔,運行效率也會有所提高。
27、常用向量化函數 —— accumarray、arrayfun 、bsxfun 、cellfun 、spfun 、structfun等。
28、通過delete命令可以實現m自毀功能,例如一個名為test.m的m文件,在程序結尾添加delete('test.m'); 程序運行完成後將自動刪除自身。
29、關於matlab中矩陣大小的計算函數,length函數計算矩陣最大維的大小;size函數計算各維的大小;numel函數計算矩陣中元素的總個數,如numel(A(:))。
30、程序調試神器命令 —— dbstop if error,添加此命令到程序中,程序運行中如果遇到錯誤將自動停止在錯誤處,對快速查找程序錯誤非常有幫助。
31、end命令的妙用,end除了作為自定義函數和控制流函數的終止標識符外,還能作為數組的末尾索引,如下:A = rand(1,10);% A(10)和A(end),A(8)和A(end-2)是等價的。32、路徑和文件相關的函數,也是很多初學的小夥伴常疑惑的問題,下面就來整理一下與路徑文件相關的命令:pwd % 獲取當前工作路徑dir % 列出當前文件夾中的文件和文件夾ls % 列出當前中文件夾內容 cd % 打開指定文件mkdir % 創建新文件夾rmdir % 刪除文件夾copyfile % 複製文件或文件夾movefile % 移動或重命名文件或文件夾delete % 刪除文件或對象長期堅持創作不易,如果您喜歡這篇推文,煩請有空點個讚,以資鼓勵!喜歡就關注一下哦,謝謝!