我正在为八度音程打包,并且发生了一些奇怪的事情。在A类foo的功能让我使用cellfun这样的递归调用:子功能和私人功能
现在... cellfun(@(d) foo(d,localval), cellarray) ...
函数foo为几个不同的类中定义。我以前曾经成功地使用过这个practive。所不同的这段时间是,在B类,富利用了两个子功能和功能私募类B.这将导致上面的调用导致以下错误:
error: 'subfunction2' undefined near line 29 column 6
error: called from:
error: /usr/share/octave/packages/mypkg/@B/foo.m at line -1, column -1
我试图改变顺序其中子函数在@ B/foo的函数文件中列出,并已验证它找到第一个子函数但不是第二个子函数。我也尝试让子功能对B类保密,问题依然存在。
所以我的问题是:这里发生了什么?这是使用cellfun吗?匿名函数?为什么它抓住一个子功能而不是两个?对象类?线/列-1被报告了什么?我真的很想从用户那里隐藏这些帮助函数,所以我更喜欢除了删除公共路径中的子函数。