我可以在匿名函数中编写多个语句吗?

时间:2017-03-16 16:28:33

标签: matlab function anonymous-function

是否可以在匿名函数中写入多个语句?

例如,我想将函数f作为参数传递给另一个函数,该函数将尝试在循环中多次调用它,并且我希望f执行非平凡的工作分散在多个陈述中。

显然我不能写下面的内容,因为函数没有捕获第二个disp -

>> f = @() disp('Hello'); disp('World')
World

我希望我可以使用括号来界定函数的范围,但是当MATLAB接受语法时,

>> f = @() {disp('Hello'); disp('World')}

f = 

    @(){disp('Hello');disp('World')}

它不喜欢我调用函数 -

>> f()
Error using disp
Too many output arguments.

Error in @(){disp('Hello');disp('World')}

是否有一个解决方案,除了编写内部函数并传递它之外(我不喜欢这样做,因为在包含内部函数的m文件中调试很困难,因为你无法在工作空间中创建变量)。

0 个答案:

没有答案