放學快走,你的電腦在實驗室自己喊啪嗒!

把標題中的「啪嗒」看成「啪啪」的,先去牆角面壁三分鐘!

進入正題,今天我們面臨的問題是:有時Matlab程序裡面有許多參數,我們需要通過試錯法來獲取每個參數最合適的值,這樣就需要反覆運行這個程序。

然而,由於參數每次的值不一樣,程序運行的時間長度可能差別很大,比如從幾分鐘到幾個小時不等。

在這段時間可以干別的事情,可以讀paper,可以寫paper,當然也可以看電視劇。

但讓人鬧心的是,每過一會兒就要停下手頭的電視劇,把界面切到Matlab看程序跑完了沒,特別麻煩。

有沒有什麼辦法,讓程序跑完了之後自動提醒一下?這樣即使全屏看電視劇也不用擔心錯過。

Matlab自帶的sound函數可以幫我們解決這個問題。

1. 自帶音樂

方法很簡單,只需要在程序的末尾加上兩句:

%啪嗒聲

load splat

sound(y,Fs)

然後程序在運行完之後,就會發出啪嗒聲,提醒程序已經運行完畢。

Matlab還內置了其它聲音,比如:

(1) 鳥叫聲

%鳥叫聲

load chirp

sound(y,Fs)

(2) 火車汽笛聲

%火車汽笛聲

load train

sound(y,Fs)

(3) 鑼聲

%鑼聲

load gong

sound(y,Fs)

(4) 哈利路亞

%哈利路亞

load handel

sound(y,Fs)

(5) 大笑

%大笑

load laughter

sound(y,Fs)

2. 多次播放

上面的語句雖然可以播放提示聲,但問題是只能播放一聲。這樣的話,可能因為看電視劇太入迷而忽略了提示聲。

別擔心,修改成下面的語句,可以讓聲音播放100次。可修改number為你想要播放的次數。

load splat

number=100;

for i=1:number

sound(y,Fs)

end

另外,如果覺得兩次提醒聲音之間的間隔時間太短了,可以繼續修改成下面的語句。

每兩次提示聲之間間隔2秒,可以把delta修改成你想要間隔的時間。

load splat

number=10;

delta=2;

for i=1:number

sound(y,Fs)

pause(delta)

end

3. 播放定製音樂

如果不想使用Matlab自帶的聲音,也可以播放自己喜歡的音樂,讓程序運行完之後播放。

不過這時候不用sound函數了,而是用wavread和wavplay函數,語句如下,也是兩行,放在程序最末尾。

[y,Fs]=wavread(mymusic.wav);

wavplay(y,Fs);

mymusic.wav就是你需要播放音樂的文件名,注意要放在工作目錄下。

友情提示:播放熱門廣場舞音樂,可以開啟打雞血模式,極其有助於提高工作效率,親測可用。

4. 播放真人提醒

如果不想播放音樂,還可以讓Matlab自動朗讀一段話,這個命令的細節我們在半夜看小說傷眼睛怎麼辦?已經詳細解釋過。

在這裡,只需在程序末尾加這兩句。

Txt=actxserver(SAPI.SpVoice);

Txt.Speak(程序運行結束了,主人快切換到這裡來);

當程序結束的時候,會有人聲朗讀出「程序運行結束了,主人快切換到這裡來」。

注意第二行語句分號裡面的話,可以改成任意你想要電腦讀出的文字。

對了,前面面壁思過的那個同學,這裡可以用下面兩行代碼實現你聽啪啪啪的願望:

Txt=actxserver(SAPI.SpVoice);

Txt.Speak(啪啪啪啪啪啪);

此處引號里可以複製粘貼一萬個啪,可以聽到爆!

不過注意了:你得保證程序運行時,自己一直在電腦旁守著。不然如果程序運行完的時候你不在,同實驗室的師姐就會聽到你的電腦一直在朗讀「啪」這個字…

會不會被開除學籍?

ps, 如果對科學、工程計算編程中的經驗教訓、實用工具技巧、技術宅和好玩的東西感興趣,歡迎點擊下面鏈接,或關注我的自公眾號:科學計算編點程(kexuebc)

1 你一定要知道的十款主流畫圖軟體

2 發表SCI論文有哪些實用工具?

3 最值得學習的Matlab參考書有哪些?

4 你一定要知道的幾款經典文本編輯器

5 最常用的10個Matlab快捷鍵,助你編程更高效

6 哪種編程語言最值得花時間學習?

7 半夜看小說傷眼睛怎麼辦?

8 家裡沒人怎麼防火防盜?裝上這段自動看家程序

9 買西瓜的高級玩法,用好你的智能手機


推薦閱讀:

GacUI 動畫系統 (1)
從零開始手敲次世代遊戲引擎(卌)
雲時代的編程模式將會走向何方?
工作一個月的感受
Python分詞模塊jieba (01)-jieba安裝,分詞,提取關鍵詞,自定義分詞,切換詞庫講解

TAG:編程 | 大學 | MATLAB |