【发布时间】:2019-01-02 03:57:53
【问题描述】:
我的代码做我想做的事,但我想了解它为什么做它做的事。我发现在 MATLAB 中,如果我在函数定义之后调用函数的输出,则会出现错误,但如果我在函数定义之前调用它则不会。我的印象是 MATLAB 是本末倒置,我想知道为什么我在这种印象中是错误的。
function [out,outt]=f_testFunctionWithinFunction(arg_in)
% function has to be invoked BEFORE its definition.
out=f_inside(arg_in);
function use=f_inside(argg_in),
use=sin(argg_in);
return
outt=f_inside(arg_in);
return
表达式out=f_testFunctionWithinFunction(5) 产生-0.9589=sin(5)。但是,[out,outt]=f_testFunctionWithinFunction(5) 会产生一条错误消息,因为它要求输入 "outt"。为什么?
【问题讨论】:
-
如果你想知道如何定义函数,你可以阅读function。此外,
local functions应与nested functions区分开来。