我的函数直接工作如描述-但没有设法通过测试套件…是什么错了吗?
%%
函数varargout = counter(varargin)
持续增加基地
如果isempty(变长度输入宗量)
Base = Base + add;
varargout{1} =基地;
结束
如果numel(varargin) > 1
添加=变长度输入宗量{2};
基础=变长度输入宗量{1}的东西;
结束
结束
对于需要稍微复习一下嵌套匿名函数的人(就像我一样):
//www.tianjin-qmedu.com/matlabcentral/cody/problems/24-function-iterator
Cody的问题24可能是相关的,但请注意,到目前为止,对当前问题(问题44345)的正确解决方案中很少使用匿名函数,而所有正确的解决方案都使用了命名函数(有些嵌套,有些没有万博 尤文图斯)。
更正:这里有一个解决方案(解决方案1308690),它只使用匿名函数,而不调用命名用户函数。
下面的页面(或两者)可能对解决这个问题感兴趣://www.tianjin-qmedu.com/help/matlab/matlab_prog/nested-functions.html和//www.tianjin-qmedu.com/help/matlab/matlab_prog/share-data-between-workspaces.html。
这是《科迪》中最好的问题:简单
你也可以使用类定义来解决它,太神奇了!
可以稍微加强测试,以允许多个计数器
g =计数器(1、2);
h =计数器(3、5);
断言(isequal ([1 3 5 3 8 13], [g h g g () () () () h () ())));
:
持久和函数句柄?
由于使用了持久变量和所使用的条件语句,如果将测试套件修改为在一行中包含两个具有相同增量值的测试,则此解决方案将失败。
?
我刚刚学会了如何使用组合fx句柄和嵌套fx!