我编写了一个matlab函数来计算图像“ent=entropoy(image)
”的熵,并由matlab
编码器将其转换为c ++函数。
我在c++
文件中进行一些计算,然后尝试将所有c ++代码转换为matlab函数。
我收到了
错误:'无法将'uint8 * {aka unsigned int *}'转换为'const emxArray_uint8_T *'
在熵函数中
如何在mex函数中声明'从matlab'输入的图像并在熵函数中正确使用它?
答案 0 :(得分:1)
要创建emxArray_uint8_T
,您需要使用Coder为您生成的一些辅助函数,例如emxCreate_uint8_T
。
MATLAB Coder生成的emxArray_*_T
类型是用于在生成的代码中存储动态分配数据的结构。它们包含数据指针,大小向量和其他元数据来管理动态分配。
在MATLAB R2015a及更新版本中,在main.c
目录下的生成代码中查找文件main.h
和examples
。这些将为您提供示例C或C ++主函数,向您展示如何正确构造输入并调用生成的代码。
答案:
https://stackoverflow.com/a/24271438/3297440
还详细介绍了使用生成的emxArray
类型,并提供了MATLAB Coder文档的链接。