私はCQ出版社の出しているInterface誌を定期購読しています。ちょっと前に自宅に届いた12月号を見てみると、なんとMATLAB特集が!
その内容はと言いますと、アルゴリズム検証にフォーカスして、フィルター設計、モータ制御、画像処理など様々な領域での具体例が紹介されていました。
大きな流れは、
・MATLAB or Simulinkでアルゴリズムを書く
・MATLAB or Simulinkでシミュレーション実行し、結果をグラフ化
・場合によっては、評価用ボード(=実際のFPGAなど)にダウンロードして実行
といった感じです。
ちなみに、第4章の「無線通信アルゴリズムをSimulinkモデルで書く。それをシミュレートしたり、HDL化してからFPGAにダウンロードしたりする」というスキームは私もやったことがあります。結構昔の話ですが。
MATLABには、ユーザーが独自にMATLABのユーザーインターフェースをカスタマイズするための仕組みが用意されています。(独自メニューを追加するとか、既存メニューを見えなくするとか)。Simulinkブロックをすばやく配置できたでご紹介したツールなんかも、その仕組みを使ってSimulinkに右クリックメニューを追加しています。
それはたいがい、「m-fileでコールバック関数を書いておくと、MATLABがそれを呼び出してくれる」という形式を取るのですが、そのコールバック関数の仕様はしっかりとドキュメント化されていない事が多いです。
たとえば、Simulinkに右クリックメニューを追加したとしましょう。その「右クリックメニュー」がクリックされたら、MATLABは(ユーザーが書いた)コールバック関数を呼び出すようになっています。そのコールバック関数の中に「特定のSimulinkブロックを、右クリックされた場所に配置する」というような処理を書くことで、Simulinkブロックをすばやく配置できたでご紹介したツールが出来上がります。
さて、そのコールバック関数には引数が渡されるのですが、それがどんな情報をもっているのかドキュメントにハッキリと書かれてはいません。上記の例であれば「ユーザーがどの座標で右クリックしたのか?」はぜひ知りたいところです。(クリックされた座標に、ブロックを置きたい)。ところが、それをどうやって知れば良いのかはドキュメント化されていないようです。
こういったケースでは、マスワークスさんに問い合わせをするか、自分で調べるかしないといけません。今回の記事のテーマは、「どうやって、コールバック関数の引数が持つ構造を、自分で調べたらいいだろう?」です。
先に答えを書いてしまうと、「ブレークポイント入れおくといいよ。ブレークがかかった時に、ワークスペース変数のビューを見るとすべて分かるから」です。これで納得されてしまった方は・・・ここでお別れです。
続きを読む
Simulinkブロックをすばやく配置したいなにて、「Simulinkブロックをすばやく配置するツールを作ってみようかな」と書きました。それに対し通りすがりのSL初心者様から、右クリックメニューを拡張してブロックをすばやく配置するためのスクリプトをコメント欄にいただきました。(すばらしい!)
おかげさまで、とりあえずの形まで出来ましたので公開してみます。
名前は、「 Block Placer 」とでもしましょうか。

続きを読む
Simulinkモデルを作っていてイヤだなーと思うのが、たとえば「Gainブロックを置きたい!」と思った時に、毎回ライブラリブラウザからGainブロックを探さないといけない点です。
もちろんGainブロックの大よその場所は知っていますが、これを見つけるのに5秒、10秒とかかる事がよくあります。(私だけかな?)

「何かいいブロックないかな~♪」と探している場合には、このライブラリブラウザはとってもステキです。しかし、置きたいブロックが分かっている場合であっても、毎回ライブラリブラウザを探しにいかないといけないというのが何ともはや。
と思いつつR2010bを触っていると。。。
続きを読む
MATLAB Everywhere! これからはいつでもどこでもMATLABの時代ですよ!
・・・
うーん、なんか「家でも仕事しろってか?」なんて声が聞こえてきそうですね。そういう意味じゃないんですよ、ハイ。
実はつい先日、従来型のケータイから、スマートフォンに鞍替えしたのです。スマートフォンの電源を入れますと、画面上にアプリのアイコンがいっぱいならんでいて、まるでPCみたいです。テキトーにアプリを起動しては、無意味にいじり回していると・・・購入したのはお昼なのに、気が付いたらもう夜でした。
さて、こうなるとまず試してみたいのがMATLAB mobile。なんと、スマートフォンからMATLABが使えるというスグレモノです。いや・・・何に使うんだろうとか疑問に思わないわけじゃないですが・・・楽しそうだし・・・。
続きを読む