-1

次の行で実行するMatlab witchを使用して、合計量のシミュレーション(NUMなど)を作成する必要があります

./run.sh -d num

ここで、num ( NUM = integer*num) は新しい Matlab の数を示します。同じことが、C や NS などの他のコンピューティング プログラムでも発生する可能性があります。問題は、これらのプロセスが実行されるコンピューターが、MAX などの最大数の Matlab しか許可しないことです。実行中の Matlab の数を追跡したいと思います。最大数が (MAX-num) に減ったときは、'num' が既に終了しているため、シミュレーションの合計 NUM になるまで次の 'num' 回の Matlab シミュレーションを実行します。完成されました。

実行中のプロセスの数を知るために、次のスクリプトを実行します

ps axu |grep plopez|grep simulacion|grep MATLAB|awk '{ $2} END{print NR}'

これにより、現時点で実行されている Matlab の合計が得られます。

1 つのスクリプトだけで一連のシミュレーションを作成するにはどうすればよいでしょうか?

4

1 に答える 1

0

手っ取り早い方法は、一連のシミュレーションを NUM 個のサブセットに分割し、これらのサブセットを順番に処理することです。

次のスクリプトを使用して、いくつかの画像を処理しました。フォルダ構成は次のようになりました。

  • 場合
    • 20p
    • 40p
    • 60p
    • 80p
    • 100p

そこで、ターミナルで CASE フォルダーに入り、スクリプトを実行しました。これは順次 matlab を呼び出し、スクリプト "processImages" を実行して抽出データを生成しました。

list=$(ls | grep p)

は、実際には簡単で汚いコード行です。ただし、私の場合はうまくいき、問題を解決するためのヒントが得られるかもしれません。

とても良い一日を。

#!/bin/bash

list=$(ls | grep p)

echo $list

for d in $list
    do
        echo $d
        cd $d
        matlab -nodisplay -nosplash -nodesktop -r "processImages; exit"
        cd ..
done
于 2013-09-20T10:50:34.177 に答える