10得票1回答
编译用于Matlab的C MEX文件时,size_t和mwSize之间的区别是什么?

我目前正在将一些32位Matlab的C MEX文件移植到64位Matlab。 在这样做时,我遇到了两种类型,一种来自Matlab人员,另一种是C标准。 这是Matlab文档对 mwSize 的说明: mwSize (C和Fortran) 尺寸值类型 描述 ...

10得票2回答
Matlab Mex库的生命周期

有人知道Matlab MEX库的生命周期吗?具体来说,我对以下内容感兴趣: 是否有一种方法可以在调用之前强制加载库? 该库是单例还是加载多个实例? 是否有任何初始化挂钩可在调用之前使用? 是否有析构函数挂钩/信号可在卸载库以进行清理时拦截? 我在这里和在线上进行了广泛搜索,但找不到这些...

9得票3回答
GCC编译速度非常慢(大文件)

我正在尝试编译一个大型的C文件(特别是为了MATLAB mexing)。这个C文件大约有20MB(如果您想玩一下,可以从GCC错误跟踪器下载)。 以下是我运行的命令和屏幕输出。这已经运行了几个小时了,正如您所看到的,优化已经被禁用(-O0)。为什么这么慢?有没有办法让它更快? (参考资料:...

9得票1回答
为什么std::nth_element对于N < 33的输入向量返回排序后的向量?

我正在使用std::nth_element来获取矢量的百分位数(大致正确的值),就像这样: double percentile(std::vector&lt;double&gt; &amp;vectorIn, double percent) { std::nth_element(ve...

9得票3回答
Matlab mex文件使用mexCallMATLAB比对应的m文件慢了近300倍。

我开始使用C++实现一些m文件,以减少运行时间。这些m文件生成n维点并在这些点上评估函数值。这些函数是用户定义的,并作为函数句柄传递给m文件和mex文件。mex文件使用mexCallMATLAB和feval来查找函数值。 我构建了下面的示例,在Matlab命令行中构建的函数句柄fn被传递到m...

9得票1回答
如何配置CMake来编译MEX文件?

我希望在CLion中编译MEX文件(MATLAB可执行文件),而不是在MATLAB中编译(它对编写C代码没有帮助)。然而,MEX文件需要#include mex.h(pp),这在普通的C++中不可用。此外,格式不同,没有main函数。 我正在使用MATLAB R2018b,并希望使用新的C+...

9得票3回答
强制MATLAB重新加载在mex函数中链接的库

我有一个Mex函数,叫做myfunction.mexmaci64(这是在OS X上正确的名称结尾)。 现在,myfunction链接到库mylibrary.dylib。两者均位于同一文件夹中。 现在,每当我更改mylibrary中的内容时,MATLAB不重新加载新的库版本,而是使用旧版本,...

8得票2回答
Makefile: 将C代码转换为mex代码(链接错误)

我是一名有用的助手,可以为您翻译文本。 我有一个使用 makefile 工作良好的 C 代码。现在,我正在尝试将其转换为 mex 文件,以便我可以从 Matlab 中运行它。在这里,我也使用 makefile 方法。但是,mex 的 makefile 给我报错。 这里是我想与我的 mex ...

8得票2回答
如何为mex函数添加"帮助"文本?

我正在编写一个Matlab的mex文件。然而,mex文件似乎有一个严重的限制:help mexfilename不会显示帮助文本。 我可以通过编写一个包含帮助信息并最终调用mex文件的m文件来规避这个问题,但肯定有更好的方法。 另一方面,使用这种方式,我可以在m文件中进行所有错误检查,这样做...

8得票1回答
MATLAB的parfor和C++类mex包装器(需要复制构造函数?)

我正在尝试使用这里概述的方法,将一个C++类包装成matlab mex包装器。基本上,我有一个初始化mex文件,它返回一个C++对象句柄: handle = myclass_init() 我可以将这个句柄传递给另一个 mex 文件(例如 myclass_amethod),该文件使用句柄调...