运行带参数的matlab程序

时间:2012-01-24 01:54:12

标签: matlab

我有一个matlab文件,它接收一个文件。我想在matlab shell中运行该程序,例如prog。我需要实现它,以便它需要一些参数,例如“prog filename.txt 1 2,这意味着我可以在我的程序中使用filename.txt和1 2作为变量。

谢谢!

2 个答案:

答案 0 :(得分:21)

为了使脚本从命令行接受参数,您必须首先将其转换为将获得所需参数的函数,即如果您的脚本名为prog.m,则将其作为第一行< / p>

function []=prog(arg1, arg2)

并在末尾添加end(假设该文件只有一个函数)。调用与文件同名的函数非常很重要。

接下来需要确保脚本文件位于您调用脚本的位置,或者它位于Matlab工作路径中,否则它将无法识别您的脚本

最后,要执行您使用的脚本

matlab -r "prog arg1 arg2"

相当于调用

prog(arg1,arg2)

来自Matlab内部。

* - 在Windows和Linux环境中测试

答案 1 :(得分:0)

将函数编写在单独的文件中后,如另一个答案所述,您可以使用稍微复杂一些的设置来调用它,以使其更容易捕获错误等。

关于确保Matlab在脚本执行完毕后不启动图形界面并退出并给出错误提示的有用建议in this thread

例如:

matlab -nodisplay -nosplash -r "try, prog(1, 'file.txt'), catch me, fprintf('%s / %s\n',me.identifier,me.message), exit(1), end, exit(0)"

如果添加了行间距,则赋予Matlab的脚本将如下所示:

% Try running the script
try
    prog(1, 'file.txt')
catch me
% On error, print error message and exit with failure
    fprintf('%s / %s\n',me.identifier,me.message)
    exit(1)
end
% Else, exit with success
exit(0)