收集一些Matlab的小TIPS

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. 調試程序

常用調試方法大州。

  1. 設置或清除斷點:使用快捷鍵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**

  1. 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ū)別

&和&&都是邏輯運算符避咆,主要有兩點不同

  1. 當判斷兩個邏輯值舟肉,時,例如A&(f(x)>c)和A&&(f(x)>c)時查库,對于第一種情況路媚,不論A是否為真,A和(f(x)>c)都要計算樊销,但是對第二種情況整慎,如果A是false脏款,那么后面的(f(x)>c)就不用計算了,倘若f(x)是一個計算量大的函數裤园,那么這將節(jié)省很多時間撤师。
  2. &適用于矩陣間的邏輯運算,&&只適用于單個元素拧揽,包括數值和字符剃盾。

6. 清除&刪除

clf 清除圖形窗
clc 清除指令窗中顯示內容
clear 清除matlab工作空間中保存的變量
close 關閉指定句柄對象窗口。

  1. 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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市淑翼,隨后出現的幾起案子腐巢,更是在濱河造成了極大的恐慌,老刑警劉巖玄括,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冯丙,死亡現場離奇詭異,居然都是意外死亡遭京,警方通過查閱死者的電腦和手機胃惜,發(fā)現死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門风宁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛹疯,你說我怎么就攤上這事戒财。” “怎么了捺弦?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵饮寞,是天一觀的道長。 經常有香客問我列吼,道長幽崩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任寞钥,我火速辦了婚禮慌申,結果婚禮上,老公的妹妹穿的比我還像新娘理郑。我一直安慰自己蹄溉,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布您炉。 她就那樣靜靜地躺著柒爵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赚爵。 梳的紋絲不亂的頭發(fā)上棉胀,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音冀膝,去河邊找鬼唁奢。 笑死,一個胖子當著我的面吹牛窝剖,可吹牛的內容都是我干的麻掸。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼枯芬,長吁一口氣:“原來是場噩夢啊……” “哼论笔!你這毒婦竟也來了采郎?” 一聲冷哼從身側響起千所,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒜埋,沒想到半個月后淫痰,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡整份,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年待错,在試婚紗的時候發(fā)現自己被綠了籽孙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡火俄,死狀恐怖犯建,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情瓜客,我是刑警寧澤适瓦,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站谱仪,受9級特大地震影響玻熙,放射性物質發(fā)生泄漏。R本人自食惡果不足惜疯攒,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一嗦随、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敬尺,春花似錦枚尼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至呜舒,卻和暖如春锭汛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袭蝗。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工唤殴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人到腥。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓朵逝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乡范。 傳聞我的和親對象是個殘疾皇子配名,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內容