MATLAB(あるい​はSimulink)​とProcessin​gの間でのリアルタイ​ムのデータの渡し方に​ついて

19 views (last 30 days)
koya tanaka
koya tanaka on 18 Jul 2017
Commented: koya tanaka on 21 Jul 2017
javaベースのProcessingという言語で現在,あるキーを押すと表示されるプログラムを作成しています。 また,別のあるキーを押すと色を変化させるパラメータ(変数)を設定してます。この色を変える変数に対応したキーの信号をMATLAB(あるいはSimulink)からの信号に置き換えたいのですが,どのような方法で達成されるのでしょうか?
  3 Comments
koya tanaka
koya tanaka on 21 Jul 2017
jiroさん 1つのPC内で計算処理プログラムと描写プログラムを扱います。 外部「ハード」ではネットでもよく見られて,特にArduinoとProcessingで連携をとっています。どうやら,シリアルポートを使って通信をしているみたいです。 ただし,ソフト間では・・・
「リアルタイム」についてですが,前者になります。 外部から垂れ流しで出てくるデータをまず,MATLAB/Simulinkで処理して,処理した結果を,switch文である動作(色を変更させるパラメータの切り替え)に振り分けます。

Sign in to comment.

Accepted Answer

jiro
jiro on 21 Jul 2017
同じPC内の二つのプロセス通信だと COM や TCP/IP などが考えられます。また、MATLAB には様々な言語から呼べるインターフェイスがありますので、もしかしたら Processing が Java ベースなのでしたら Java 用 AP Iが使えるかもしれません。
  1 Comment
koya tanaka
koya tanaka on 21 Jul 2017
jiroさん お返事ありがとうございます。 挙げていただいたものを参考にして試してみます。

Sign in to comment.

More Answers (1)

mizuki
mizuki on 20 Jul 2017
例えばAを押したら赤、Bを押したら青が表示されるといったように、特定のキーに応じて応答を変えたいというご質問で間違いないでしょうか。
もしそうであれば、以下のように input 関数を使うことでキーボード入力を認識することができます。 Aを入力したら赤色のグラフ、Bを入力したら青色のグラフを描くようなコードになっています。
prompt = 'キーを押してください ';
x = input(prompt, 's'); % コマンドからの入力を要求
if( x == 'A' )
plot(rand(1,5), 'r')
elseif( x == 'B' )
plot(rand(1,5), 'b')
end
既に描いた図の色を変える場合は、グラフの "Color" プロパティを変更します。
figure
h = plot(rand(1,5), 'k'); % プロパティリストを取得
prompt = 'キーを押してください ';
x = input(prompt, 's');
if( x == 'A' )
h.Color = 'r';
elseif( x == 'B' )
h.Color = 'b';
end
  1 Comment
koya tanaka
koya tanaka on 21 Jul 2017
mizukiさん お返事ありがとうございます。
説明が足りませんでした。
ある計算をさせてその処理をもとに絵を描く,ということを目標にしています。 そこで,計算処理が得意なMATLAB/Simulinkと描写に特化したprocessingを 併用しようということなのです。
C言語等ではpipeなる機能(プログラム?)が存在するみたいですが, MATLAB/Simulinkとprocessing間での値の移動のための プログラムは存在するのでしょうか。という質問でした。

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!