把标题中的“啪嗒”看成“啪啪”的,先去墙角面壁三分钟!
进入正题,今天我们面临的问题是:有时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('啪啪啪啪啪啪');
此处引号里可以复制粘贴一万个啪,可以听到爆!
不过注意了:你得保证程序运行时,自己一直在电脑旁守着。不然如果程序运行完的时候你不在,同实验室的师姐就会听到你的电脑一直在朗读“啪”这个字…
会不会被开除学籍?
(END)
回复“热门”查看更多信息
科学计算编点程 3M君,酷爱Matlab和Python编程,不定时po一些科学、工程计算编程中总结的经验教训、实用工具技巧、技术宅和好玩的东西,欢迎关注~
文为原创,转载请注明作者3m君和微信公众号:科学计算编点程