在八度音程中运行matlab项目时,mex函数未定义错误

问题描述 投票:1回答:1

我实际上是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 octave mex
1个回答
1
投票

来自Matlab的二进制MEX文件是not compatible with Octave。您需要使用Octave的mexmkoctfile --mex命令从源代码重新编译项目中的所有MEX文件。

如果作者没有提供此MEX文件的来源,那么您就是SOL。在他们的GitHub repo上发布一个问题,要求提供源代码。还有祝你好运。 :)

© www.soinside.com 2019 - 2024. All rights reserved.