はい,どらびです.
twitterやってたらこんなことが
MATLAB、処理終わったら通知音くらい出してほしい
— たんく@雨天決行 伊豆限界ツーリング (@Tank_make) September 29, 2020
学生時代,特に修論間近で時間に追われているとき,いろんな条件で解析試すのに効率よくやろうとして自分もめっちゃ悩みました.
これもしかしたらみんな困っているのでは??
ということで備忘録的に記しておきます.
方法1(easy):ビープ音を鳴らす
めっちゃシンプルに,スクリプトの終わりに,
beep;
って打ち込みましょう.ビープ音が設定されているPCならその音が鳴ります.
この方法,シンプルで一見最強ですが一点だけ難点があります.それは,
スクリプトがエラー吐いた時と同じ音がする(少なくともwindows機では)
という点です.
まあ,エラーにしてもスクリプト終了にしても,確認に向かわなければならないのは同じなので,気にしない人は気にしないかもしれませんが,個人的には精神衛生的に良くないのでお勧めはしません(笑)
方法2(normal):適当な音楽を流すように設定する
MATLABでは,soundという関数を使って,変数を音声波形として扱って流すことができます.ということで,例えば正弦波を自分で作って流したり,あらかじめ音声データを取り込んでおけば,好きな音楽を終了時に流すことができます.
これであればエラーと正常終了を分類することもできますし,何か条件分岐で特殊な条件に入った場合だけ違う音楽を流すなどできます.
これ用の関数スクリプトを一度用意しておけば,あらゆるスクリプト内で文末に一行追加するだけで好きな音楽を流して完了をお知らせできます.
唯一の弱点は,用意しなければならない変数が一つ増えることくらいでしょうか?
(番外編,hard):音以外で知らせたい場合
最後に,自分が使っていた方法で音以外でお知らせする方法があるのでついでに書いておきます.
その方法というのが,スクリプト終了時にメールを送るというものです.
MATLABって意外と何でもできるんですよね(笑)
ただ,これには条件があって,利用しているネットワーク環境によってできたりできなかったりします.これを参考にする人がいるとしたら大学生やらが多いのかなと推測していますが,学内ネットワークは多くの場合プロキシ設定があるため,この方法は使えません.いや,使えるかもしれませんがハードルが高いといった方が正確かも.
自宅などで作業している場合はたぶん行けます.
メールアドレス等を個別に変えて利用してください.送る宛先を頻繁に変える人は,アドレスを変数にした関数を組みなおすことをオススメします.
さらに応用としてIFTTTなどを組み合わせれば
メール受信→slackやらtwitterやらに通知
のコンボも使えます.まあIFTTT有料化するみたいなんで何とも言えませんが…
最後に
MATLABさん.設定で終了時に音鳴らせられるように仕様変更してください.私からは以上です(笑)
メール以外のシステムでも通知できるかはわかりませんが,個人的には出先でも比較的手軽にと言いますか,受動的に動きを確認できるのでオススメだったりします.
もちろん,リモートデスクトップ環境を作ればいいじゃないかって人もいると思いますし,私も事実リモートもやってました.ただ,リモート環境作って出先で確認できるようにしたところで,自分から確認しに行こうとしないと見れないようだと,結局気がかりでほかの作業が手につかないと思うんですよね.
ちなみにですが,エラー発生時の分岐でメール送ることも(おそらく)できると思います.
今回はこの辺で.快適なMATLABライフを送れるように,少しずつ改善していきましょう.
コメント