如何找到 Matlab mex 文件的代码?
Posted
技术标签:
【中文标题】如何找到 Matlab mex 文件的代码?【英文标题】:how could find code of Matlab mex file? 【发布时间】:2016-08-03 04:36:13 【问题描述】:我想将 Matlab 的 Imrotate 函数转换为 c++。 Matlab 在 Imrotate 中使用了一个 mex 文件(Imrotatemex)。 Matlab mex文件的代码怎么找?
【问题讨论】:
据我所知你不能。从 2006 年开始:se.mathworks.com/matlabcentral/newsreader/view_thread/138604,而 2009 年的答案或多或少是相同的:se.mathworks.com/matlabcentral/answers/… 所以我怀疑这种情况现在已经改变了。 【参考方案1】:输入using可以看到matlab使用的函数
edit imrotate
此外,文档说:
% Performance Note
% ----------------
% This function may take advantage of hardware optimization for datatypes
% uint8, uint16, and single to run faster.
在这种情况下,Matlab 调用 imrotatemex,即编译后从 Matlab 调用的 C 代码,通常速度更快。
【讨论】:
【参考方案2】:函数which
显示指定项的完整路径,支持matlab函数、java方法、工作区变量以及当前工作文件夹或matlab路径上的任何文件:
which('imrotate')
which imrotate
如果您提供参数'-all'
,它将列出所有找到的引用:
which imrotate -all
当然,如果代码被混淆(pcode、shared library 或其他),则无需编辑太多。
【讨论】:
【参考方案3】:在我查看了前两个答案之后。命令
which imrotatemex -all
给我结果:
/Applications/MATLAB_R2015a.app/toolbox/images/images/private/imrotatemex.mexmaci64 % 图片专用
如您所见,它在一个私人文件中
参考这个答案中的方法,我们有两种方法可以访问它: https://discussions.apple.com/thread/7583520?start=0&tstart=0
1.在finder中使用'Go'功能
使用路径 /Applications/MATLAB_R2015a.app/toolbox/images/images/private/
2.使用终端输入命令:
默认写入 com.apple.Finder AppleShowAllFiles YES
我搜索了一些结果,mexmaci64是一个c文件在matlab中编译的文件,所以我们不能直接编辑它。(?留这个问题)
从另一个方面来说,OpenCV 可能有一些基于 C 的实现。
问候, 林
【讨论】:
以上是关于如何找到 Matlab mex 文件的代码?的主要内容,如果未能解决你的问题,请参考以下文章
matlab 解决 错误使用 mex 未找到支持的编译器或 SDK
如何通过 Eclipse 编码和编译 Matlab mex 文件?