控制Matlab仿真的运行次数

时间:2013-09-17 20:20:31

标签: matlab process controls

我必须进行全面的模拟(例如NUM)  与Matlab女巫我用以下行运行

./run.sh -d num

重复,其中num(NUM = integer * num)表示新Matlabs的数量。 C或NS等中的任何其他计算程序都可能发生同样的情况。 问题是这些进程运行的计算机只允许最大数量的Matlabs,例如: MAX。 我想跟踪运行的Matlabs的数量以及当最大数量减少到(MAX-num)时,因为'num'已经完成,然后运行Matlab的下一个'num'模拟,直到模拟的总数为NUM完成了。

要了解正在运行的进程数,请运行以下脚本

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

这使Matlabs在这一刻运行。

我怎样才能从一个脚本中完成整套模拟?

1 个答案:

答案 0 :(得分:0)

快速而肮脏的方法是将您的模拟集划分为NUM个子集,然后您可以按顺序处理这些子集。

我使用以下脚本处理一些图像。文件夹结构如下:

  • CASE
    • 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