【问题标题】:Running a matlab program with arguments运行带参数的 matlab 程序
【发布时间】:2012-02-17 08:46:05
【问题描述】:

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

谢谢!

【问题讨论】:

标签: matlab


【解决方案1】:

一旦你的函数被写在一个单独的文件中,正如另一个答案所讨论的那样,你可以用稍微复杂的设置来调用它,以便更容易捕获错误等。

有一个有用的建议in this thread 确保Matlab 不启动图形界面并在完成脚本后退出,如果有错误则很好地报告错误。

例如:

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)

【讨论】:

    【解决方案2】:

    为了让脚本接受来自命令行的参数,你必须先把它变成一个函数来获取你想要的参数,即如果你的脚本被命名为prog.m,放在第一行

    function []=prog(arg1, arg2)
    

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

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

    最后,执行你使用的脚本

    matlab -r "prog arg1 arg2"
    

    相当于调用

    prog(arg1,arg2)
    

    从 Matlab 内部。

    *- 在 Windows 和 Linux 环境中测试

    【讨论】:

    • 我想知道我们是否可以编写一个类似于load 的脚本(例如,保存为script.m),以便我们在MATLAB 控制台中使用script arg 调用它。
    • 我今天在 Windows 上的 matlab R2017B 上尝试了这个,但没有成功。错误是“ 上的错误( 行)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    相关资源
    最近更新 更多