主要内容

我是否需要升级MEX文件以使用交错的复杂API?

您无需更新MEX源代码以继续构建MEX文件。这梅克斯命令用来-R2017B.默认情况下API。但是,在未来版本的Matlab®梅克斯将使用交错的复杂API-R2018A默认情况下,您需要修改构建命令。因此,为了确保跨MATLAB版本的所需行为,添加兼容性标志-R2017B.到您的构建脚本。

我可以运行现有的mex函数吗?

您可以运行现有的二进制MEX文件,而无需升级与交错复合API一起使用的文件。但是,其他不兼容可能会阻止执行现有的MEX函数。如果您的函数未正确执行,请搜索梅克斯在相关的MATLAB发行说明中,并查看兼容性考虑课题。

我必须更新源mex文件吗?

您的源代码 下一步行动
我的MEX函数不使用复数。

检查功能是否正确处理任何复杂数据输入。打电话给mxgetpr(c)/mxgetpr(fortran)mxgetdata(c)/mxgetdata(fortran)不推荐复杂数组。

MathWorks建议您更新代码以使用mx_has_Interleaved_complex.宏观或建立使用梅克斯-R2017B.选项以确保MATLAB版本的所需行为。

如果你使用mxgetdata.或者mxsetdata.,考虑用键入的数据访问功能替换它们。有关更多信息,请参阅使用交错复合API。

我不打算更新我的代码。

如果您的MEX函数使用复数,则选择选择退出。MathWorks建议您使用兼容性标志构建-R2017B.

如果您的代码处理复杂数字,则可能会注意到MATLAB访问兼容性接口的性能影响。

我想更新我的代码。我从哪里开始?

要更新源代码,请参阅升级MEX文件以使用交错复合API

我在MEX函数中使用复数,但无法访问源代码。

询问源代码的所有者遵循步骤升级MEX文件以使用交错复合API

我使用与第三方库的复数。我的MEX代码负责将复数的MATLAB表示转换为库的复杂数字的表示。

确定库的复杂数字表示。有时,表示可能更接近MATLAB中使用的交错表示。

在其他情况下,库具有在内存中表示复杂数字的选项。如果是这样,请参阅供应商文档,然后选择最接近MATLAB交错表示的表示。

我的MEX函数会产生错误。

您必须从源代码重新编译MEX文件。如果使用这件-R2017B.标志无法解决问题,然后在源代码中可能存在不兼容。有关不兼容的信息,请参阅我可以运行现有的mex函数吗?MathWorks建议您更新MEX源代码以使用交错的复杂API。

相关话题