如何运行带有参数的matlab m文件并在m文件中处理该参数?

时间:2014-12-16 08:40:28

标签: matlab command-line-arguments octave

如何运行带参数的matlab m文件?
我可以使用参数在八度音程中运行相同的代码,但我在matlab 中找不到相应的代码。 在带有参数的命令行上运行m文件后,我需要在m文件中处理该参数。 这是相应的八度代码,可以完美地运行:

#! /usr/bin/octave -qf

argList = argv();

以下是完美运行上述m文件的命令:

./solver.m this_is_argument_of_m_file

相应的matlab代码是什么?

更新 按命令行,我的意思是操作系统命令行(终端,windows cmd),而不是matlab命令行。

2 个答案:

答案 0 :(得分:0)

您应该知道脚本和函数之间存在差异。 Mathworks已将documentation的一部分用于此差异。

脚本不接受输入参数,函数可以,但不需要。 您可以识别函数,因为m文件中的第一个功能代码是function。函数使用自己的工作空间,脚本使用matlab的基础工作区。

例如:

function out = fcn_name(in1, in2, varargin)

此外,您可以在matlab中使用OO进行编程,但我认为您应该开始阅读上面的链接。

有关启动命令,请查看文档的this部分。您可能想要使用-r选项。

答案 1 :(得分:0)

在windows cmd提示符下,您可以按如下方式运行它:

"C:\PATH_TO_MATLAB\matlab.exe" -nosplash -nodisplay -nodesktop -r "run('C:\PATH_TO_M-FILE\mfile.m');"

这将使matlab运行;然后可以使用exit命令关闭它。

可以在linux上采用相同的方法:

./PATH_TO_MATLAB/matlab -nosplash -nodisplay -nodesktop -r < /PATH_TO_M-FILE/mfile.m

某些版本的matlab似乎反对将'.m'部分放在那里 - 如果它抛出错误,请尝试删除扩展名...

在回复您的评论时,仅限Linux(我没有安装Windows进行试用),如果您将系统配置为只需键入matlab即可运行matlab,则可以最好地完成此操作。进入你的终端。您可以通过创建符号链接(sudo ln -s PATH_TO_MATLAB_EXECUTABLE /usr/bin/)来进行设置。然后在终端中运行:

cd PATH_TO_FUNCTION_YOU_WANT && matlab -nosplash -nodisplay -nodesktop -r 'mfile(args)'

确保不包含.m,引号中的所有内容都直接传递给matlab。如果用分号分隔,可以包含多个函数。我不知道如何传递字符串作为参数...