コマンド プロンプトは、ソフトウェアの実行、およびレポートと出力ファイルの生成のすべての点でうまく機能します。目的の結果を含む出力ファイルを生成するには、パラメーター ファイルを使用するレポート プログラムの実行可能ファイルを実行する必要があります。たとえば、これらの手順をコマンド プロンプトで実装するとしたら、次のようになります。
“path\report.exe” –f Report.rwd –o Report.rwo
出力ファイルは Report.rwo です。このファイルには、エクスポートされた変数が含まれます。
これをMatlabで実装するために、以下は私が達成しようとしていることの要点を示す小さなスクリプトです。実行ごとにソフトウェアを呼び出し、データを抽出します。
for nr=1:NREAL
dlmwrite(‘file.INC’,file(:,nr),’delimiter’,’\n’); % Writes the data file for each run
system('"path\file.dat"'); % calls software
system('"path\Report.rwd" –o "path\Report.rwo"'); % calls report
[a,b]=textread(‘"path\Report.rwo".rwo’,’%f\t%f’); % Reads the data and store it in the variable b
end
だから私は2つの問題があります:
1) このスクリプトを Matlab で実行すると、出力ファイル Report.rwo が生成されません。したがって、「textread」関数を含む行に到達すると、ファイルが存在しないためにエラーが発生します。
2) Matlab がレポート (.rwd ファイル) を呼び出すたびに、Enter キーを押すか「q」と入力して終了するように求められます。実行するファイルが何百もあると仮定すると、ファイルごとに Enter キーを押して続行するように求められます。次の行により、プロンプトが表示されます。
system('"path\Report.rwd" –o "path\Report.rwo"'); % Calls report
古い編集:次のように、私の問題には2つの更新があります:
更新 1:上記の問題のパート 2 は、Jacob によって解決されたようです。1回の実行で問題なく動作しています。ただし、最終的な結果は、何百ものファイルを実行するプログラム全体を実行できる場合にのみ確認されます。
更新 2:次のように、コマンド プロンプトを使用してソフトウェアを実行し、出力ファイルを生成できます。
**“path\mx200810.exe” –f file.dat**
このコマンドは、レポート パラメーター ファイルを読み取り、出力ファイルを生成します。
“path\report.exe” –f Report.rwd –o Report.rwo
最新の編集:
1) ソフトウェアを実行し、Return キーを押すプロンプトを回避し、次のコマンドを使用して Matlab を使用して出力ファイルを生成することができます。
system('report.exe /f Report.rwd /o Report.rwo')
system('mx200810.exe -f file.dat')
ただし、必要な .exe および .dll ファイルを .dat ファイルと同じフォルダーにコピーした後にのみ、それを行うことができました。したがって、これらすべてのファイルがある同じフォルダーから .m ファイルを実行しています。
2) ただし、Matlab のコマンド ウィンドウには、次のようなエラーが 1 つあります。
"...STOP: Unable to open the following file as data file:
'file.dat'
Check path name for spaces, special character or a total length greater than 256 characters
Cannot find data file named 'file.dat'
Date and Time of End of Run: .....
ans = 0"