我的代码执行了我想要的操作,但是我想了解为什么它会执行它的操作。我发现在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"
会产生一条错误消息。为什么?
答案 0 :(得分:1)
您应该使用end
而不是return
结束函数。尝试:
function [out,outt]=f_testFunctionWithinFunction(arg_in)
% function has to be invoked BEFORE its definition.
disp('test')
out=f_inside(arg_in);
function use=f_inside(argg_in),
use=sin(argg_in);
end
outt=f_inside(arg_in);
end