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

6 visualizzazioni (ultimi 30 giorni)
koya tanaka
koya tanaka il 18 Lug 2017
Commentato: koya tanaka il 21 Lug 2017
javaベースのProcessingという言語で現在,あるキーを押すと表示されるプログラムを作成しています。 また,別のあるキーを押すと色を変化させるパラメータ(変数)を設定してます。この色を変える変数に対応したキーの信号をMATLAB(あるいはSimulink)からの信号に置き換えたいのですが,どのような方法で達成されるのでしょうか?
  3 Commenti
Jiro Doke
Jiro Doke il 21 Lug 2017
Modificato: Jiro Doke il 21 Lug 2017
「リアルタイム」というのはつまりMATLABのプログラムが実行している最中に描画させたいということでしょうか。それとも計算させた結果を再生するように描画させるのではだめでしょうか。後者でも良いのなら、計算結果をファイルなどに出力し、そのファイルを描画プルグラムで読み込んで再生するということも考えられます。
ちなみに、Processingに関しては詳しくないのですが、MATLABの強みの一つは(計算はもちろん)可視化です。一つの環境で作られたプログラムのほうが色々な観点から見ても優れているので計算+描画をMATLABでやるというのも一つの手段かと思います。
koya tanaka
koya tanaka il 21 Lug 2017
jiroさん 1つのPC内で計算処理プログラムと描写プログラムを扱います。 外部「ハード」ではネットでもよく見られて,特にArduinoとProcessingで連携をとっています。どうやら,シリアルポートを使って通信をしているみたいです。 ただし,ソフト間では・・・
「リアルタイム」についてですが,前者になります。 外部から垂れ流しで出てくるデータをまず,MATLAB/Simulinkで処理して,処理した結果を,switch文である動作(色を変更させるパラメータの切り替え)に振り分けます。

Accedi per commentare.

Risposta accettata

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

Accedi per commentare.

Più risposte (1)

mizuki
mizuki il 20 Lug 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 Commento
koya tanaka
koya tanaka il 21 Lug 2017
mizukiさん お返事ありがとうございます。
説明が足りませんでした。
ある計算をさせてその処理をもとに絵を描く,ということを目標にしています。 そこで,計算処理が得意なMATLAB/Simulinkと描写に特化したprocessingを 併用しようということなのです。
C言語等ではpipeなる機能(プログラム?)が存在するみたいですが, MATLAB/Simulinkとprocessing間での値の移動のための プログラムは存在するのでしょうか。という質問でした。

Accedi per commentare.

Prodotti

Community Treasure Hunt

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

Start Hunting!