我想要一个带有函数和调用该函数的代码很少的文件,例如:
function foo()
...
end
foo()
我想将此类代码保存到名为“everything.m”的文件(一个文件)中,然后在 Matlab/Octave 控制台中输入“everything”,我的函数foo
将被定义并调用。
我想要一个带有函数和调用该函数的代码很少的文件,例如:
function foo()
...
end
foo()
我想将此类代码保存到名为“everything.m”的文件(一个文件)中,然后在 Matlab/Octave 控制台中输入“everything”,我的函数foo
将被定义并调用。
做这种事情的常用方法是有一个名为的脚本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'.
在 Matlab 中,您不能混合使用脚本和函数。因此,在您的情况下,为了调用 foo() 您需要编写另一个函数,否则 matlab 编译器会抱怨。
所以everything.m
应该有一个名为 的函数everything
,您可以从中foo()
调用
这里有一个类似的问题
我认为您可以将代码编写在脚本中,然后使用与函数相同的名称保存。例如,如果您的函数是 foo,那么当您保存文件时,它的名称必须是:foo.m。从命令行调用 foo 会执行该函数。如果您只想在没有输入参数的情况下调用该函数,则必须在关键字“function”和“end”之间定义所需的所有变量。此外,只有当前文件夹是保存函数的文件夹时,才能成功调用函数。如果你从另一个目录调用该函数,你会得到一个错误。要使函数“全局”工作,您应该将其添加到“matlab 路径”。希望这对您有所帮助。