在八度音程中运行matlab项目时,mex函数未定义错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在八度音程中运行matlab项目时,mex函数未定义错误相关的知识,希望对你有一定的参考价值。
我实际上是matlab的新手。
我试图在我的ubuntu机器上以八度音程运行this matlab项目。它有一个名称为'bm3d_thr'的函数,用于其中一个文件(BM3D-Net / library / bm3d-denoising / BM3D.m文件的第342行),如下所示:
y_hat = bm3d_thr(z, hadper_trans_single_den, Nstep, N1, N2, lambda_thr2D,...
lambda_thr3D, tau_match*N1*N1/(255*255), (Ns-1)/2, (sigma/255), thrToIncStep, single(Tfor), single(Tinv)', inverse_hadper_trans_single_den, single(thr_mask), Wwin2D, smallLN, stepFS );
另外,我的八度音程路径中有相应的mex文件(名称为“bm3d_thr.mexa64”)。
问题是当我尝试运行项目时(通过说'demo'),它会出现以下错误:
error: 'bm3d_thr' undefined near line 342 column 9
error: called from
BM3D at line 342 column 7
bm3d_net_res at line 5 column 7
demo at line 9 column 7
有人可以帮我弄清楚这里出了什么问题并让它发挥作用。我想问题是mex文件没有在我的机器上编译,但作者没有提供这个mex文件的源代码。
任何帮助,将不胜感激。
提前致谢。
答案
来自Matlab的二进制MEX文件是not compatible with Octave。您需要使用Octave的mex
或mkoctfile --mex
命令从源代码重新编译项目中的所有MEX文件。
如果作者没有提供此MEX文件的来源,那么您就是SOL。在他们的GitHub repo上发布一个问题,要求提供源代码。还有祝你好运。 :)
以上是关于在八度音程中运行matlab项目时,mex函数未定义错误的主要内容,如果未能解决你的问题,请参考以下文章
MATLAB + Mex + OpenCV:链接和编译正确,但在运行时找不到库
rand 函数是不是在 MATLAB/Octave 中产生 0 或 1 的值?