2015-08-29 80 views
1

我用八度運行selective search代碼,它給了我這個錯誤:倍頻找不到功能手柄

error: @SSSimColourTextureSizeFillOrig: no function and no method found

它產生這個錯誤代碼是:

simFunctionHandles = {@SSSimColourTextureSizeFillOrig, @SSSimTextureSizeFill, @SSSimBoxFillOrig, @SSSimSize}; 

但這種代碼可以在MATLAB運行成功,所以我應該有在八度的一些錯誤或不支持的功能處理?

回答

4

Octave與函數句柄完全沒有問題。你的情況確切的問題是文件的格式。

如果你看看在你的文章中鏈接的Github回購,你所指的功能是MATLAB P-Code files。這些都是混淆的MATLAB文件,只能在MATLAB中運行。 P代碼文件的目的是獲取原始源代碼,並隱藏原始源代碼,以便您不能獲取原始源代碼並對其進行修改以供自己使用。話雖如此,你別無選擇,只能用於你的目的這個功能,你不能修改它的行爲。

但是,Octave並沒有這種混淆支持,所以很自然地它不能重建原始代碼爲你運行的東西。

看看這個八度線程的詳細信息:http://octave.1599824.n4.nabble.com/Matlab-p-files-td1627334.html

....所以基本上,你SOL。你只能在MATLAB中運行這些函數。但是,通過聯繫原作者並獲得原始文件.m可能會有一些好運,但這些是P代碼文件的原因可能是因爲有一些作者不想共享的方法和技術,但需要以這種方式分發這些代碼,以使系統的其他部分能夠工作。

+1

謝謝,這很好地解釋了我的問題。 – Demonedge

+0

沒問題。對不起,如果這不是你正在尋找的答案! – rayryeng