同じコンピュータに2つのMATLABウィンドウを開きたいとします。目的のシナリオは次のとおりです。MATLABウィンドウ1は、MATLABウィンドウ2とは何の関係もないスクリプトを継続的に実行しています。同時に、MATLABウィンドウ2は一定の条件を連続的にチェックするスクリプトを実行していて、 MATLABウィンドウ1上で実行されているスクリプトを終了し、それ自身のスクリプトも終了します。私は何をしようとしているのか、より効率的な時間がかかると信じているので、私は1つではなく2つのMATLABウィンドウを持っていたいと思います。興味深い "KeyInject"プログラムをhttp://au.mathworks.com/matlabcentral/fileexchange/40001-keyinjectに見つけましたが、MATLABに既に組み込まれている簡単な方法があるかどうかは疑問でした。同じコンピュータ上にある2つのMATLABウィンドウ間でコマンドを送信することはできますか?
答えて
単純な、または柔軟な、無限に拡張可能なバージョン1.0が欲しいですか?システムBで作成されたファイルを経由してシステムAをトリガーすることですシンプル
システムBがファイルを作成する必要がありますシンプルで、[システムAは、コマンド
if exist (fileName, 'file')
、あなたのシャットダウンを行うと、ファイルをチェックしますコマンド。起動時に、システムAはファイルを
delete (fileName);
で削除します。もう1つのオプションは、udpコマンドを使用することです。 UDPは、同じコンピュータ上であれ、ネットワーク経由であれ、プロセス間であらゆるデータを送信することを可能にします。 (詳細はhttps://www.mathworks.com/help/instrument/udp.htmlを参照してください)。
ありがとう、私はファイルメソッドは非常に簡単な解決策だと思います!私はこれを使用します。 –
私はいくつかの方法を参照してください可能性に並列コンピューティングツールボックスを使用して、このXY problem
使用(マット)ファイル(ホキが提案されているように)回避するために
再構築し、 1つのMATLABセッションですべてを保持します。
- global pipeを介して互いに通信するMEX機能を記述します。
- Auto(Hot)keyスクリプトを作成してください。
オプション2がおそらく最も簡単です。あなたはそれ以外の場合は、OOPで書くならば、あなたはループ内
オプション3をポーリングする必要があると思いますevents and listenersを見てみると、より多くの時間実施することがかかり困難と方法ですが、はるかに高速検出を可能にします条件、およびセッション間のデータ転送が非常に高速になります。
オプション4:AutoHotkeyソリューションは、恐らくHorribleConstruction®でおそらく最も恐ろしいことでしょう。しかし、ああ、ああ、スピードは不可欠です。どのような楽しみ!両方のMATLABセッションでは、名前がWindow1
またはWindow2
の(非表示の)Figureを作成します。これらのウィンドウ名はAutoHotkeyが簡単に追跡できるものです。条件が満たされている場合は、対応するウィンドウ名を更新して、AutoHotkeyスクリプトの残りの部分をトリガします。他のウィンドウのボタンを押してください!ウィンドウ間でデータを転送する必要がある場合:両方のGUIで基本的な編集ボックスを作成し、それらの間にデータをコピー&ペーストすることができます。 Linuxの場合:Autokeyを同じ目的で使用することはできますが、基本的にはPythonコードを書くことが重いので、Pythonを使用してください。
また、KeyInjectを使用してください。より楽しい。
ハッハッハ...私はあなたの最後の解決策を愛し、私はそれを達成するためにさらに複雑な方法を考えようとしていますが、私はあなたがそれを上回ったと思います! +1(より賢明な)選択肢の最初と援助リンクで+1。 – Hoki
- 1. 2つのウィンドウでハンドルを同じにすることはできますか?
- 2. TCL内の同じコンピュータ上の2つのプログラム間でデータを送信しますか?
- 3. 同じネットワーク上で通信するコンピュータ
- 4. AHK:GetKeyStateは2つのコマンドを送信することはできません
- 5. 同じコンピュータ上にある2つのGitHubアカウント
- 6. 同じコンピュータ上の2つのプロセスがTCP経由で通信するとどうなりますか?
- 7. 同じコンピュータ上で異なるコマンドを実行するMakefile
- 8. 同時に2つの異なる受信者にメールを送信することはできますか?
- 9. は同じネットワーク上にないコンピュータと通信する
- 10. 2つのWPFウィンドウ間でイベントを送信する
- 11. 同じコンピュータ上で2つのgithubアカウントを使用するには、
- 12. 2つのチェックボックスを同じ名前で送信しますか?
- 13. WCFを使用して2つのアプリケーション間で通信(メッセージ送信)することはできますか?
- 14. 同じコンピュータでAngular 2とPHPのクロスドメイン通信を避ける
- 15. D3js:同じ選択上の2つの.append方法が同じ行にすることはできません
- 16. コンピュータ間でメッセージを送信する
- 17. 同じサーバーへ2つの同時node.js POST要求を送信することは可能ですか?
- 18. 2つのボタンで2つの異なるビューにGETフォームを送信することはできますか?
- 19. IPアドレス(WCFまたはソケット)経由で同じローカルネットワーク上のコンピュータ間で情報を送信する方法はありますか。
- 20. 同じCPU上の2つのハイパースレッドの間にレースができますか?
- 21. 同じネットワーク上にない2つのiOSデバイス間でデータを送信する方法
- 22. linuxでは1つのコマンドに2つの同じフラグを追加することは可能ですか?
- 23. SparkStreaming同じコマンドを2回実行するか同じメールを2回送信する
- 24. 同じPERFORCEストリームに2つのビューを持つことはできますか?
- 25. 2つのNSWindowControllerを同じアプリに持つことはできますか?
- 26. 同じコンピュータ上のプロセス間で通信するためのローカル専用ポートを作成しますか?
- 27. 同じ.vimrc、2つの異なるコンピュータ
- 28. 2つの名前を同じにすることはできません - mongodb
- 29. 同じマシン上の異なるポートを使用する2つのサイトで同じAppPoolを使用することに問題はありますか?
- 30. 2つのレルムモジュールが同じクラスを持つことはできますか?
これはどのように効率的であるかわかりません。別のMATLABのライブスクリプトで条件を確認できるのであれば、なぜそのインスタンスではできませんか? – Eppicurt
ここにいくつかの文脈を与える。私は実際に結晶を撮影するレーザーを制御するために1つのMATLABウィンドウを使用しています。レーザーによる過剰な結晶の損傷があるかどうかを確認するCCDからの画像を分析する別のMATLABウィンドウ。水晶があまりにも傷ついたら、レーザーを止めたい。ある実験的な理由から、レーザを連続的に動作させ、CCDを独立して制御することが重要であり、2つのMATLABウィンドウが必要です。 –
同じスクリプトからハードウェアを制御できないような理由はありません。レーザーを設定し、センサーを読んでください。これはコントローラの実装では標準です。 1つのメインループを終了条件で作成します。このループの最初のステップは、センサーデータを読み込み、次にシステムの入力を設定することです。あなたのケースでは、そうすることができない理由はありますか? –