我使用 Octave 来运行 selective search代码,它给了我这个错误:
错误:@SSSimColourTextureSizeFillOrig:找不到函数和方法
。
出现这个错误的代码是:
simFunctionHandles = {@SSSimColourTextureSizeFillOrig, @SSSimTextureSizeFill, @SSSimBoxFillOrig, @SSSimSize};
但是这段代码可以在 MATLAB 上成功运行,所以我认为 Octave 中存在一些错误或者它不支持函数句柄?
最佳答案
Octave 在函数句柄方面绝对没有问题。您遇到的确切问题是文件的格式。
如果您查看帖子中链接的 Github 存储库,您所指的函数是 MATLAB P-Code files .这些是混淆后的 MATLAB 文件,只能在 MATLAB 中运行。 P-Code 文件的目的是获取原始源代码并隐藏原始源代码,这样您就无法获取原始源代码并对其进行修改以供自己使用。话虽如此,您别无选择,只能将此功能用于您的目的,并且您无法修改其行为。
但是,Octave 没有这种混淆支持,因此自然无法重建原始代码供您运行。
查看此 Octave 线程了解更多详细信息:http://octave.1599824.n4.nabble.com/Matlab-p-files-td1627334.html
....所以基本上,你是SOL .您只能在 MATLAB 中运行这些函数。不过,你可能运气好,联系了原作者,得到了原始的.m
文件,但这些是P-Code文件,可能是因为有些方法和技巧作者没有' 想要共享,但需要以系统其余部分能够正常工作的方式分发此代码。
关于matlab - Octave 找不到函数句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32282430/