3

私には bash スクリプトのバックグラウンドがありません。UNIXコマンドラインの基本を知っています。

マトリックス画像を入力として取り込むmatlabスクリプトがあります。ファイルにたくさんの画像があります。matlab プログラムを呼び出し、ファイル内のすべての画像をプログラムへの入力として 1 つずつフィードするには、bash スクリプトが必要です。

あなたがそれを書きたいなら、それは素晴らしいことです。私が求めているのは、誰かが私が調べるべきことを正確に教えてくれることだけです.

ありがとう

4

2 に答える 2

5

matlabコマンドがパスにあると仮定します (詳細については、ドキュメントを参照してください) 。

すべての BMP を取得したい (ファイルの種類を指定しなかった) と仮定すると、単純な bash ループを使用できます。

for f in *.BMP; do
    matlab -nosplash -nodisplay -nojvm -r "my_command('$f'),quit()"
done

-nosplash-nodisplayおよび-nojvmは、GUI がトリガーされていないことを確認し-r、コマンドを実行するように matlab に指示します。最後の,quit()は、実行後に matlab が終了することを保証します。

于 2013-07-29T05:00:14.917 に答える
1

あなたが必要

  • 画像のリストを 1 行に 1 つずつ生成する 1 つのコマンド。list_images、またはfilename画像のリストを含むものとして呼び出します
  • 1サイクル
  • コマンド、画像を読み取るもの
  • 1 つの変数 (「image_name」と呼びます)
  • matlab を実行するコマンド
  • 場所、ここに出力が行くはずです

何かのようなもの:

list_images | while read image_name
do
     matlab_command "$image_name" > "$image_name.output"
done

またはそれ以上

while read image_name
do
    matlab_command "$image_name" > "$image_name.output"
done < filename_with_images.txt

の意味がよくわかりませんhave amatrix images in a file。入力の例を投稿してください。

prj現在のディレクトリ内のファイルを見つけるための編集

find . -maxdepth 0 -name \*.prj -print0 | while IFS= read -r -d '' image_name
do
    matlab_command "$image_name" > "$image_name.output"
done

「bash チュートリアル」の Google。

于 2013-07-27T06:30:46.977 に答える