文章插圖

文章插圖
今天給大家介紹一些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 + 函數名,在命令窗口中顯示相應函數的幫助信息 。
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.
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,添加此命令到程序中,程序運行中如果遇到錯誤將自動停止在錯誤處,對快速查找程序錯誤非常有幫助 。
A = rand(1,10); % A(10)和A(end), A(8)和A(end-2)是等價的 。32、路徑和文件相關的函數,也是很多初學的小伙伴常疑惑的問題,下面就來整理一下與路徑文件相關的命令:【matlab矩陣求和 matlab中求矩陣的和】
pwd%獲取當前工作路徑dir% 列出當前文件夾中的文件和文件夾ls%列出當前中文件夾內容cd%打開指定文件mkdir%創建新文件夾rmdir%刪除文件夾copyfile% 復制文件或文件夾movefile% 移動或重命名文件或文件夾delete% 刪除文件或對象
- 表格公式求和為0是怎么回事 excel表格求和是0
- matlab顯示輸入參數太多怎么辦 matlab數據量太大怎么辦
- matlab打不開了怎么回事 MATLAB無法打開
- 巨蟹座跟人求和的幾種常見方式 巨蟹座冷戰后會主動嗎
- excel一列數自動求和怎么算 excel求一列自動求和
- above word文檔怎么求和公式sum word文檔怎樣求和公式
- excel怎么合并求和同類項 excel相同項合并求和函數
- 矩陣相加,MATLAB怎么進行矩陣和數組運算,轉置和加減乘除?
- matlab聚類分析代碼 譜聚類算法的MATLAB代碼
- matlab擬合直線方程 matlab線性擬合代碼
