2

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

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

n在 MATLAB 中使用不同的A, B, C .... 输出保存为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 命令。我已经成功地做到了这一点,但我不会怀疑如何做其他方式。

4

2 回答 2

4

您可以在引号中包含多个 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

于 2013-03-19T11:38:46.687 回答
0

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

nohup matlab -nodisplay -nosplash -nojvm -nodesktop -r "demCF datasetName 1 10 1000 0" 2>&1 > demCF_datasetName_100.out &
于 2017-04-26T21:59:15.377 回答