【问题标题】:How to run a MATLAB custom script with parameters in a workspace如何在工作区中运行带有参数的 MATLAB 自定义脚本
【发布时间】:2013-03-08 00:50:25
【问题描述】:

我有一个 MATLAB 函数,它使用工作区中先前加载的变量执行一些操作。例如:

do_something(A, B, C, ...);

我在 MATLAB 中使用 A, B, C ... 的不同子集运行函数 n 次。输出另存为ASCII,以便使用 C++ 程序进行进一步处理。

我想为整个过程计时。所以我想从 shell 脚本运行 MATLAB 函数,然后是 C++ 程序。例如:

matlab -nojvm -nodesktop -nosplash -r "run matlabTest"; ./c++Test;

但我意识到 MATLAB 函数需要一些以前未加载的变量。所以,我的问题是如何使用工作区中的参数运行 MATLAB 函数? .工作区保存在同一目录中。

我正在使用 MATLAB 7.9.0 (R2009b) 在 Linux 上工作。

我注意到(在阅读/查看此问题时)我可以使用 system 函数在 MATLAB 中运行 linux 命令。我已经成功地做到了这一点,但我不会怀疑如何做到这一点。

【问题讨论】:

    标签: bash matlab shell


    【解决方案1】:

    您可以在引号中包含多个 MATLAB 命令,以; 分隔。你可以试试

    matlab -nojvm -nodesktop -nosplash -r "mydata = 1; run matlabTest"; ./c++Test;
    

    例如。如果您需要许多变量并且这变得冗长或不方便,也许您可​​以将工作区变量保存到一个 .mat 文件(比如mydata.mat),然后将它们加载:

    matlab -nojvm -nodesktop -nosplash -r "load mydata; run matlabTest"; ./c++Test;
    

    PS 你不需要run,直接拨打matlabTest即可。

    【讨论】:

      【解决方案2】:

      为了在 Ubuntu 上使用 nohup 在后台运行 matlab 脚本(带参数),以下命令适用于我:

      nohup matlab -nodisplay -nosplash -nojvm -nodesktop -r "demCF datasetName 1 10 1000 0" 2>&1 > demCF_datasetName_100.out &
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-10
        • 2014-04-11
        • 2022-10-22
        • 1970-01-01
        • 2023-04-10
        相关资源
        最近更新 更多