MATLABで外部プログラムをバックグラウンド実行

このQ&Aのポイント
  • MATLABを使用して外部プログラムをバックグラウンドで実行する方法について説明します。
  • 特定のExcelファイルを起動し、出力されたCSVファイルをMATLABで読み込んで処理する方法について解説します。
  • 黒い窓(コマンドプロンプト)を出さずに外部プログラムをバックグラウンドで実行する方法を紹介します。
回答を見る
  • ベストアンサー

MATLABで外部プログラムをバックグラウンド実行

MATLABで外部プログラムを実行したいと考えています。 具体的に申し上げると、ファイル起動時にデータを吸い上げcsvとして出力するマExcelファイルを起動させ、csvが出力されたらMATLABで読み込み、処理を行うというものです。   そこで、!を使えば、外部プログラムが立ち上がるので、 例えば、 ! C:\work\test.xlsx とすると、test.xlsxを立ち上げることが出来ますが、test.xlsxを閉じないとMATLABのほうに戻ってきません。   そこで、末尾に & を付けて ! C:\work\test.xlsx & とすると、目的は達成できたのですが、 黒い窓(コマンドブロンプト)が出てきて、見た目が悪いので、 この黒い窓を出さずに、外部プログラムをバックグラウンドで実行する方法は無いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ikuy_usay
  • ベストアンサー率100% (2/2)
回答No.1

MATLABの処理に戻った時点で、MATLABのコマンド "system('taskkill /F /IM cmd.exe');" を実行してみてはいかがでしょうか。

cheepyon
質問者

お礼

ありがとうございます!さすがですね! そんなコマンド知りませんでした。。   ちなみに。 MATLABのヘルプデスクに聞いたら、 たとえば、 winopen C:\work\test.xlsx とすると、 コマンドブロンプト経由せずに直接立ち上げられました m--m お騒がせいたしました m--m

関連するQ&A

  • MATLABで外部プロセスを停止させたい。

    MATLABでwinopen もしくは! で外部プログラム(.exe)をバックグラウンド起動したあとに、 (ある条件を満たしたら、) 起動した外部プログラム(プロセス)を停止させたい。 どうしたらよいでしょうか? m--m

  • Matlabの実行エラーについて

    Matlab6.1を使っています。 他のPCに入っているMatlabで作成し、実行できたプログラムを今使っているPCで実行しようとしたところ、以下のようなエラーが出てしまいました。 エラー内容↓↓↓ >>エラー: File: C:\MATLAB6p1\work\(+関数のプログラム+).m Line: 1 Column: 13 "]"が見つかりません。"identifier"が見つかりました。 >>エラー: ==> C:\MATLAB6p1\work\(mainプログラム).m 行番号: 50 ==> 関数を呼び出すプログラム; プログラムの途中までは動いて、関数を呼び出す際にエラーが出てしまうようです。今までほかのPCでは実行できていたし、カッコや記号が不足している部分もないと思います。 なぜ実行できないのでしょうか・・・? 原因と解決方法を教えていただきたいです、よろしくお願いします。 ちなみに、他のプラグラムの中に今使っているPCで実行できたものもあります。

  • バックグラウンドで実行されるプログラムを作るには?

    バックグラウンドで実行されるプログラムを作るにはどうすればよいのですか? あと自分自身へのリンクを自動で作成するにはどうすればいいのですか? win xp borland c++です。

  • C++のプログラムをバックグラウンドで実行

    C++のプログラムをバックグラウンドで実行する方法はないでしょうか? 具体的には http://www.atmarkit.co.jp/fdotnet/dotnettips/436bgworker/bgworker.html のページにあるようなプログラムをC++で作成したいのです。 よろしくお願いします。

  • 外部プログラムを実行してそのプログラム中のキー入力を自動で行うにはどうしたらいいか?

    現在C++でプログラミングを組んでいるものです。 外部プログラムを実行させ、外部プログラム実行中に求められるキー入力を自動で行えないかと考察しているのですがわかりません。。。 外部プログラムといっているのは、現在C++で書いていて その中でsystemコマンドを使い他のexeを実行しているので。 求められるキー入力はDOS窓の画面で ------------------------------------ 上記の設定でよろしいでしょうか?> y ------------------------------------ 上記の『y』の箇所のみで『y』+Enterでその後の処理が走り出すというもので、毎回聞かれる『y』の入力を自動化したいのですが 何か方法は無いものでしょうか?? exeファイルしかなく修正もできないのでなんとか自動的に入力まで含められないかと考えてます。 みなさんどうぞよろしくお願いします。

  • バックグラウンドで実行されているプログラムの追究がしたい

    WIN98、FMV-ME・・・を使用しています。最近、何故かバックグラウンドで何かが実行されています。作業中に重くなってしまったり、タスクトレイの全てのプログラム(ウィルスチェック、タスク、IME等全て)を終了させてもハードディスクはさかんに動いています。 そのため(だと思う)、スタンバイ状態から勝手に起動されてしまうし、Cドライブのデフラグも10%に満たないうちに0%から再試行されてしまうということが何度も繰り返される、といった有様です。先日オンラインでウィルスチェックをしてみたのですが、ウィルスは発見されませんでした。 最近になってしたことといえば、Office2000からXPにアップグレードしたことくらいですが、それと何か関係が? バックグラウンドで何が実行されているのか、追究をする方法はありませんか?うっとうしくてたまらないので、すぐに実行を中止させたいのです!! よろしくお願いいたします。

  • MATLABの繰り返し文を用いたプログラム

    以下の様なプログラムを、一つ一つ入力しなくても、for文などを使って 簡単に出力するやり方知ってる人居ましたら教えてください。 ____________________________________________________________________ test= xlsread('test.xlsx');→あるエクセルファイルを読みだしている num=test(1:231,;);→ある行数を抽出している a1=num(2,:)./num(3,:);          a2=num(3,:)./num(4,:);           a3=num(4,:)./num(5,:);          : a230=num(231,:)./num(232,:); →a1~a230を求めている C = [a1;a2;a3...a229;a230] →上の行列をすべて結合させている _____________________________________________________________________ よろしくお願いします。

  • Visual C++からMATLABを呼び出したい

    工学系の大学生の者です. 現在,Visual C++で作成したMFCアプリを使って実験機を制御し,その結果にあたるセンサの値を取得してcsvファイルを生成し,それをMATLAB(csvファイルをグラフ化するmファイルを呼び出し)でグラフ化しています. ただ,この手法だとアプリの実行でcsvファイルを生成したのち,MATLAB上でコマンドを打つ必要があり,少し手間がかかります. 私の理想としては,センサ測定値をcsvファイルに書き出したのち,自動でMATLABグラフ化したいと思っております. C#だとMATLABと連携がしやすいとか聞くのですが,VIsua C++ではMATLAB連携や上記のような自動化はできないのでしょうか? できる場合は,やり方や参考資料などを挙げていただけると幸いです. (たとえば,ライブラリやヘッダー,C++ソース側の記述など) ご回答,よろしくお願い致します.

  • MATLABのCSV形式での書き込みについて

    MATLABにて計算させた結果をCSV形式で出力したいのですが, もともとCSVファイルに書き込んであるデータを消さずに, 追加書き込みとして,行と列を指定して書き込み出来るのでしょうか? もしできるのであれば, どのようなプログラムを組めばよいのでしょうか? どなたかご教授お願いします.

  • MATLABのCSV形式での書き込みについて

    MATLABにて計算させた結果をCSV形式で出力したいのですが, もともとCSVファイルに書き込んであるデータを消さずに, 追加書き込みとして,行と列を指定して書き込み出来るのでしょうか? もしできるのであれば, どのようなプログラムを組めばよいのでしょうか? どなたかご教授お願いします.

専門家に質問してみよう