matlab - 在八度音程中运行matlab项目时,mex函数未定义错误
问题描述
我实际上是matlab的新手。
我正在尝试在我的 ubuntu 机器上以 octave 运行这个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')。
问题是当我尝试运行项目时(通过说“演示”),它给出了以下错误:
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 文件与 Octave 不兼容。您需要使用 Octavemex
或mkoctfile --mex
命令从源代码重新编译项目中的所有 MEX 文件。
如果作者没有提供此 MEX 文件的来源,您就是 SOL。在他们的 GitHub 存储库上发布一个问题,要求提供源代码。还有祝你好运。:)
推荐阅读
- db2 - Db2 Warehouse控制台打开问题
- ios - 无法将对象附加到闭包内的数组
- visual-studio - Winforms 控件(ObjectListview)在表单托盘中显示为组件,而不是画布上的可视控件
- c# - 当 wpf 立方体旋转时单击一个按钮
- blockchain - 并行交易blockchaon导致替换错误或nonce太低错误
- java - 还必须写入事务中读取的每个文档:Android 中的 Firestore 事务异常
- c# - 如何从回调方法将进度传递回 UI
- react-native - 在 UIManager 中找不到 BVLinearGradient?
- google-apps-script - 如何将 Google 电子表格文件中的数据检索到另一个文件并放置超链接?
- android - 如何使用 Kotlin 声明 Pair 数组