我正在爲八度音程打包,並且發生了一些奇怪的事情。在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被報告了什麼?我真的很想從用戶那裏隱藏這些幫助函數,所以我更喜歡除了刪除公共路徑中的子函數。