2013-03-19 28 views
2

我有一个MATLAB函数,它执行一些先前在工作区中加载的变量的操作。在例如:如何使用工作区中的参数运行MATLAB自定义脚本

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

我运行功能的MATLAB n倍的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上工作。

我注意到(在阅读/回顾这个问题时)我可以在MATLAB中使用system函数运行linux命令。我已经成功地做到了这一点,但我不会停留在如何做另一种方式的怀疑。

回答

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

0

对于使用中的nohup在Ubuntu后台运行MATLAB脚本(带参数),下面的命令对我的作品:

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