我希望有一个带有函数AND的文件,只需要很少的代码来调用该函数,例如:
function foo()
...
end
foo()
我想将这些代码保存到名为“everything.m”的文件(一个文件)中,然后在Matlab / Octave控制台中键入“everything”,我的函数foo
将被定义并调用。
答案 0 :(得分:2)
执行此类操作的常见方法是使用名为everything.m
% everything.m
foo();
以及您希望能够使用的每个函数的一个文件:
% foo.m
function foo()
...
end
执行everything.m
然后调用您要调用的所有函数(以及您可能希望在该阶段执行的任何其他任务)。
将所有函数放在Matlab路径上,意味着它们是“已定义”的(可从Matlab命令提示符或其他函数内部访问)。这是“Matlab方式”:)
请注意,每个文件可以有多个函数,
% bar.m
function bar()
otherFunction(); % WORKS OK
end
function otherFunction()
...
end
只有最顶层的函数才能在Matlab命令提示符下看到:
>> bar
>> % no error
>>
>> otherFunction
??? Undefined function or variable 'otherFunction'.
答案 1 :(得分:1)
在Matlab中,您无法混合脚本和函数。所以在你的情况下,为了调用foo(),你需要编写另一个函数,否则matlab编译器会抱怨。
所以everything.m
应该有一个名为everything
的函数,您可以在其中调用foo()
这里有一个类似的问题
答案 2 :(得分:0)
我认为您可以在脚本中编写代码,然后使用相同的函数名称保存它。例如,如果您的函数是foo,则比保存文件时,其名称必须是:foo.m。从命令行调用foo会执行该函数。如果只想在没有输入参数的情况下调用函数,则必须在关键字“function”和“end”之间定义所需的所有变量。此外,只有当前文件夹是保存功能的文件夹时,才能成功调用该功能。如果你从另一个目录调用该函数,你将收到一个错误。要使函数“全局”工作,您应该将其添加到“matlab路径”。希望这对你有所帮助。