如何运行带参数的matlab m文件?
我可以使用参数在八度音程中运行相同的代码,但我在matlab 中找不到相应的代码。
在带有参数的命令行上运行m文件后,我需要在m文件中处理该参数。
这是相应的八度代码,可以完美地运行:
#! /usr/bin/octave -qf
argList = argv();
以下是完美运行上述m文件的命令:
./solver.m this_is_argument_of_m_file
相应的matlab代码是什么?
更新 按命令行,我的意思是操作系统命令行(终端,windows cmd),而不是matlab命令行。
答案 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。如果用分号分隔,可以包含多个函数。我不知道如何传递字符串作为参数...