• 締切済み

MATLABのm-fileについて

m-fileをsimulinkで利用する方法は、s-Functionブロックまたわm-fileブロックでファイル名を入力してやると理解しています。 そこで質問なのですが、 ブロックで入力データをm-file内の変数に置き換えてやることはできるのでしょうか? また、それはどのようにしたらよいのでしょうか。 知っている方おられたら教えてくださいお願いします。

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

simulinkでmatlabのプログラムを使う、一番、手軽な方法は、Embedded Matlab Functionです。 変数の初期化が必要とか、ちょっと通常のm-fileと違ってくせがあったり、また、simulinkの積分ステップ(サンプリング)のタイミングを制御するなどの細かい処理はできないのですが、基本的には、だいたい必要十分な機能を持っていると思います。 M-File S-Functionが必要な、細かい処理がしたいなら、CでS-Functionを書いたほうがいいのでは、と思うので、(少なくとも個人的には)M-File S-Functionは存在意義がかなり微妙だと思ってます。 http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/simulink/slref/?/matlab/support/manual/r14/toolbox/simulink/slref/embeddedmatlabfunction.shtml Embedded Matlab Functionだと、ポートからデータをもらうだけでなくて、値をパラメータとしてもらう、とかも簡単にできます。 http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/simulink/ug/?/matlab/support/manual/r14/toolbox/simulink/ug/f6-140155.shtml

sumonky
質問者

お礼

丁寧な回答ありがとうございます。 Embedded Matlab Functionについてこれからサイトを利用して学習してみようと思います。ポートからデータをパラメータとして与えるとありますが、パラメータの変更がポートデータより可能になるということなのだと理解しました。これであれば、やってみたいことができそうです。 参考になりました。 ありがとうございました。

関連するQ&A

  • MATLAB/simulinkでのD/A変換の仕方

    現在MATLABで制御の勉強をしている大学生です。 今、デジタル制御について勉強しているのですが、MATLAB/simulinkを使いながら進めています。 MATLAB/simulinkでのD/A変換のやり方がわからなくて質問いたしました。 通常のアナログ制御の場合、 入力 → コントローラー → プラント → 出力 で多分、設計されると思うのですが、 デジタル制御の場合、 入力 → A/D変換器 → コントローラー → D/A変換器 → プラント → 出力 という流れになると聞きました。 A/D変換器はゼロ次ホールドを行うブロックがsimulinkにあったのでそれを使えばいいと思うのですが、D/A変換器を行ってくれるブロックが見当たりません。 探し方が悪いのでしょうか。。。 もしご存知であればD/A変換に相当するブロックを教えてください。 無ければ、s-functionか何かでのD/A変換のやり方を教えて頂けると助かります。 よろしくお願いします。

  • matlab ファイル名 読み込み

    matlabでファイルを読み込むときに、ファイル名を変数内に格納する方法を教えていただけないでしょうか。 その変数を利用して、出力ファイル名を操作したいと考えています。 宜しくお願いします。

  • Matlabで作成したmファイルをC言語に自動変換することは可能ですか?

    大学の研究室で使っているmatlabの機能にC言語のソースを自動生成 する機能があると先生に伺ったのですが、 常識的に考えてそんな便利なことができるとは思えません。 実際に下記に示すtoolboxで自分が作ったmファイルからC言語のソースを、ある程度自動生成することは可能でしょうか? Matlab 2008 b windows-x64版 Matlab 7.7 Simulink 7.2 Image processing toolbox Signal processing toolbox Real time workshop SimulinkとReal time workshopを一度も使ったことが無いので 少し調べて良く判らない点がありました。 Realtimeworkshopでは、Simulinkで生成したブロック線図のみC言語で出 力できるものであり、mファイルからの変換はできないのでしょうか?

  • MATLAB でのデータ保存について

    MATLAB でシミュレーションを行なっているのですが データの保存方法がいまいちわかりません. グラフに出力してグラフを保存する事はできるのですが データを数値としても保存しておきたいので. save [ファイル名] [変数名] -ascii としても見やすいデータではないので なにかいいデータの保存方法はありませんか? データの利用法は OpenGL によるアニメーションのためです. よろしくお願いします.

  • MySQLで連続csvファイルを読み込むために

    MySQL 5.6を最近使い始めました。 大量のcsvファイルで保存されているデータを読み込んで、データベースとして扱いたいのですが、どうすれば良いでしょうか? ファイル名は、 data1_1.csv data1_2.csv data1_3.csv data2_1.csv data2_2.csv といった形で、規則正しく並んでいるのですが、大量にあるため、ループを使って自動化したいと思っております。そのために、LOAD DATA INFILE ファイル名 を使って、このファイル名を順次変えて繰り返す方法がわかりません。 まず、ファイル名に変数が使えるのかと思って @file="data1_1.csv"としてファイル名を置き換えてみたのですが、エラーでした。これでは、この1_1を順次動かす以前に変数が無理なのかも?と思っています。 何かやり方があるようでしたら、どなたかお教えください。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • matlabでファイルをn行目から変数に読み込む方法

    matlabでファイルをn行目から読み込む方法がわかりません。 具体的にはファイルの上9行に説明文が入っていて、10行目からtab区切りでn×m行列のデータが入っているファイルがあって、その中のn×m行列のデータを変数に代入したいのですが、その方法がわかりません。 loadで読み込もうとしたのですが上手くできません。もし読み込む方法があるのなら誰か教えてください。

  • MATLABでサーボモータを制御する方法

    私は今現在、独学でMATLABを勉強しています。 参考書を見ながらいくつかのMファイルやsimulinkのモデルなどを今までつくってきました。 そこでシミュレーションだけではなく、実際に実機を動かしてみたくなり、たまたま持っていたサーボモータを動かしてみようと思い立ちました。しかし、思い立ったは良いものの、実際にMATLABからの制御入力をサーボモータに伝達する方法がわかりません。多分RS232Cを経由して送るとは思うんですが、実際にsimulink上でどのように構成すれば良いのか教えていただきたいです。D/A変換の仕方もちょっとよくわかりません。 マイコンはPICの16F648Aです。 とりあえず、細かい制御は考えないでただMATLABで動かしてみたいだけです。教えてくれる方がいましたらよろしくお願いします。

  • matlab matファイルから一部だけを読み込む

    Matlab初心者です、よろしくお願いします。 Matlabでn×m行列のデータが入っているmatファイルからx×y行列のデータを変数に読み込みたいのですが、どうすれば良いのでしょうか? ご教授していただけると助かります。 よろしくお願いします。

  • phpで複数のファイルをアップロードする場合

    お世話になります。 PHPを使って、ファイルを複数アップロードしようと思います。 htmlで <input name="p_s_img1" type="file"> <input name="p_s_img2" type="file"> ・・・ <input name="p_s_img10" type="file"> と記述してあります。 受け取り側のPHPでファイル名を取得するのに $uploadimgName1=""; $uploadimgName1=$_FILES['p_s_img1']['name']; $uploadimgName2=""; $uploadimgName2=$_FILES['p_s_img2']['name']; ・・・ $uploadimgName10=""; $uploadimgName10=$_FILES['p_s_img10']['name']; と書けば、$uploadimgName*の変数に ファイル名が入ると思うのですが、 これをfor文の繰り返し処理などを使って簡単にかけないでしょうか? しかも、$uploadimgName*の変数は、for文から抜けた後も利用したいのですが。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • バッチファイルで

    バッチファイルでファイル名をキーボードで変更するのは どうすればよいのでしょうか 例:A.txtと言うファイル名をキーボードから2006data.txtにしたいのですが REN C:\A.txt 2006data.txt はわかるのですが2006.txtを変数にして その変数をキーボードで入力する方法(今更バッチファイルでもないのですが?) よろしくお願いします。