!(エスケープ演算子)内で変数を用いる

4 ビュー (過去 30 日間)
AKIHISA FUJII
AKIHISA FUJII 2023 年 5 月 2 日
コメント済み: AKIHISA FUJII 2023 年 5 月 3 日
DNsample.exeというvisual studioでコンパイルした実行ファイルをmatlabスクリプト上で実行するため、!(エスケープ演算子)を使用しています。このファイルを実行すると、引数で指定したファイル名の画像が入手できるようになっています。
↓例
例で指定した引数の1つ目、strが得られる画像のファイル名を指しています。この例は実行可能でした。
今回、forループの中で本構文を使用し、画像のファイル名を変えていきたいのですが、エスケープ演算子内ではただの文字列として認識されるだけで、上で指定した変数を読み込んでくれているわけではなさそうです。(例の場合、ファイル名がstrとなる)
エスケープ演算子上でも変数を利用するにはどのような方法がありますでしょうか。

採用された回答

Kojiro Saito
Kojiro Saito 2023 年 5 月 3 日
sprintfコマンドでフルコマンドの文字列を作り、MATLABコマンドを実行するevalで感嘆符演算子付きでおこなうか、OSのコマンドが実行できるsystemコマンドで感嘆符抜きで実現できます。
evalコマンドの例
cmd = sprintf("!DNsample.exe %s 0 -2", str);
eval(cmd)
systemコマンドの例
cmd = sprintf("DNsample.exe %s 0 -2", str);
[status,cmdout] = system(cmd)
  1 件のコメント
AKIHISA FUJII
AKIHISA FUJII 2023 年 5 月 3 日
>Kojiro Saito様
うまく動作させることが出来ました。とても助かりました。
ありがとうございました。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange起動と終了 についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!