1. 程序內計時
趁著跑程序的空當,記錄下Matlab計時函數的使用纲堵。
-
tic, toc
當你需要計算一組Matlab操作的運行時間時,可以使用tic和toc函數。tic函數啟動一個秒表吹零,表示計時開始;toc則停止這個秒表从铲,表示計時結束瘪校,并計算出所經歷的時間(單位為秒)。比如名段,下面的代碼連續(xù)兩次計算plot(rand(50,5))這條指令的執(zhí)行時間:
> tic;plot(rand(50,5));toc
Elapsed time is 0.202291 seconds.
> tic;plot(rand(50,5));toc
Elapsed time is 0.062176 seconds.
你會發(fā)現這兩條同樣的plot命令在計算時間上的差別阱扬。第二條plot命令要比第一條執(zhí)行得快,這是因為Matlab已經在執(zhí)行第一條plot命令時生成了Figure窗口并且已經將所需要的函數編譯到了內存伸辟,這樣第二條指令就省去了創(chuàng)建Figure窗口以及函數搜索和編譯的時間麻惶。
-
cputime, etime
除了tic和toc外,Matlab還提供了兩個函數cputime和etime信夫,用來計算一次運算所占用的時間窃蹋。其中,函數cputime返回以秒為單位的静稻、自當前Matlab程序段啟動之后到調用該函數所占用的CPU時間警没;函數etime計算兩個以6元素行向量格式(例如函數clock與datevec的返回值)表示的時間向量(年 月 日 時 分 秒)之間以秒為單位的時間間隔。實際上振湾,函數tic和toc內部也在利用clock和etime進行計時杀迹。下面的這些代碼演示了cputime和etime的用法,其中histo_equalization是我自定義的一個關于直方圖均衡的M腳本文件:
>> t0 = cputime; histo_equalization; cputime-t0
ans =
1.4375
>> t1 = clock; histo_equalization; etime(clock,t1)
ans =
1.5000
%由此可看出cpu占用時間與程序占用時間之間的差別押搪。
參考《精通Matlab7》树酪,參考Blog文章鏈接。
2. 調試程序
常用調試方法大州。
- 設置或清除斷點:使用快捷鍵F12续语,或左鍵該行的數字軸位置增加一個斷點。
- 執(zhí)行:使用快捷鍵F5厦画。
- 單步執(zhí)行:使用快捷鍵F10疮茄。
- 選擇執(zhí)行:F9,或者右鍵 Evaluate Selection根暑。
- step in:當遇見函數時娃豹,進入函數內部,使用快捷鍵F11购裙。
- step out:執(zhí)行流程跳出函數懂版,使用快捷鍵Shift+F11。
- 執(zhí)行到光標所在位置:非常遺憾這項功能沒有快捷鍵躏率,只能使用菜單來完成這樣的功能躯畴。
- 觀察變量或表達式的值:將鼠標放在要觀察的變量上停留片刻民鼓,就會顯示出變量的值,當矩陣太大時蓬抄,只顯示矩陣的維數丰嘉。
- 退出調試模式:沒有設置快捷鍵,使用菜單或者快捷按鈕來完成嚷缭。
3. 統計計算時間
Matlab提供了cputime和etime用來計算一次運算所占cpu時間饮亏,具體見help
>>t0=cputime;
myoperation;
cputime-t0
> ans=0.1400
>>t1=clock;
myoperation;
etime(clock,t1)
> ans=11.2800
注:myoperation為用戶自定義腳本文件
4. 日期、時間等
** date ,now,clock**
- date:按照日期字符串格式返回當前系統日期
- now:按照連續(xù)的日期數值格式返回當前系統時間
- clock:按照日期向量格式返回當前系統時間阅爽,可將當前時間和日期返回到一個(6元)數組中路幸。
>> date,now,clock
ans =
09-Apr-2011
ans =
7.3460e+005
ans =
1.0e+003 *
2.0110 0.0040 0.0090 0.0170 0.0430 0.0470
year,month,day,hour,minute,second
matlab中分別使用year,month,day,hour,minute,second從上面講到的字符串和連續(xù)型日期時間格式中提取年月日時分秒等信息
>>[year(date),year(now)]
ans =
2011 2011
注意:上面的函數是沒法從向量型日期時間格式中正確讀取上述信息的
>>year(clock)
ans =
5 0 0 0 0 0
Matlab中處理日期與時間的函數詳解
- Matlab用三種格式來表示日期與時間
(1)雙精度型日期數字:一個日期型數字代表從公元0年到某一日期的的天數,例如付翁,2008年8月26日夜時0點鐘被表示為733646简肴,而這同一天的中午12點就被表示為733646.5,也就是說任何一個時刻都可以用一個雙精度型數字表示百侧。
(2)不同形式的日期字符串:Matlab定義了28種標準日期格式的字符串砰识。
(3)數值型的日期向量:用一個6元數組來表示一個日期時間,例如佣渴,[2008 8 26 12 5 0]表示2008年8月26日12點05分0秒辫狼;用一個3元數組來表示一個日期,例如辛润,[2008 8 26]表示2008年8月26日膨处。 - 用日期數字表示日期使計算機更容易計算,但是不直觀频蛔,因此Matlab提供了許多函數來實現三種日期格式之間的轉化灵迫。
(1)datestr: 實現將日期數字和日期向量轉化為日期字符串秦叛,可以在Matlab命令窗口中輸入help datestr來查看關于datestr的用法晦溪。
(2)datenum: 實現將日期字符串和日期向量轉化為日期數字,可以在Matlab命令窗口中輸入help datenum來查看關于datenum的用法挣跋。
(3)datevec: 實現將日期數字和日期字符串轉化為日期向量三圆,可以在Matlab命令窗口中輸入來help datevec查看關于datevec的用法。
5. &和&&的區(qū)別
&和&&都是邏輯運算符避咆,主要有兩點不同
- 當判斷兩個邏輯值舟肉,時,例如A&(f(x)>c)和A&&(f(x)>c)時查库,對于第一種情況路媚,不論A是否為真,A和(f(x)>c)都要計算樊销,但是對第二種情況整慎,如果A是false脏款,那么后面的(f(x)>c)就不用計算了,倘若f(x)是一個計算量大的函數裤园,那么這將節(jié)省很多時間撤师。
- &適用于矩陣間的邏輯運算,&&只適用于單個元素拧揽,包括數值和字符剃盾。
6. 清除&刪除
clf 清除圖形窗
clc 清除指令窗中顯示內容
clear 清除matlab工作空間中保存的變量
close 關閉指定句柄對象窗口。
- clear 刪除工作空間中的項目淤袜,釋放系統內存
語法:
clear
clear name
clear name1 name2 name3...
clear global name
clear -regexp expr1 expr2...
clear global -regexp expr1 expr2...
clear keyword
clear('name1','name2','name3',...)
描述:
clear 刪除工作空間內所有的變量痒谴,釋放系統內存
clear name 僅僅刪除工作空間內的m-文件或mex文件里的函數或者變量名∫樱可以通過通配符()有選擇地見刪除項目闰歪。比如說:clear my可以刪除工作空間任何名字里以my開頭的變量。它可以移除m-文件里的斷點蓖墅,重新初始化永久性變量库倘,只要是m-文件改變或者清除,函數或者永久的變量處設置的斷點就會被移除论矾。如果一個name是全局的教翩,它會從當前的工作空間里刪除,但是還可以取得的贪壳,因為聲明它是全局的饱亿。如果name被鎖鎖上以后,它仍然停留在內存中闰靴。
clear name1 name2 name3...從工作空間里移除name1,name2,name3
clear global name移除全局變量名
clear -regexp expr1 expr2...清除所有匹配正則表達式expr1 expr2...的所有變量
clear golbal -regexp expr1 expr2....清除所有匹配正則表達式expr1 expr2...的所有全局變量:
clear keyword清除所有標有關鍵字的選項
clear('name1','name2','name3',...)是函數的語法表示彪笼。當變量名或函數名以字符串的形式存儲時,用這種形式蚂且。
限制:
cleard 在UNIX系統里配猫,不會影響分配給matlab進程的內存大小。
- close刪除特定的參數
語法:
close 刪除當前參數
close(h)刪除名為h的參數
close name刪除名為name的參數
close all刪除所有句柄非隱藏時的參數
close all hidden刪除包括句柄隱藏的參數
status=close(...)特定窗口刪除時杏死,返回1泵肄,否則返回0
彈出窗口定義操作函數
dialog 創(chuàng)建對話框
errordlg 創(chuàng)建錯誤對話框
helpdlg 創(chuàng)建幫助對話框
inputdlg 創(chuàng)建輸入對話框
listdlg 創(chuàng)建選擇列表對話框
msgbox 創(chuàng)建消息對話框
pagedlg 顯示頁面的版面對話框
printdlg 顯示打印對話框
questdlg 問題對話框
uigetfile 文件檢索對話框
uiputfile 為寫入而顯示的檢索對話框
uisetcolor 從對話框交互式設置對象的ColorSpec
uisetfont 交互設置對象字體特征
warndlg 警告對話框
http://blog.csdn.net/ouening/article/details/52058193
http://www.cnblogs.com/nktblog/archive/2012/05/09/2491208.html