gpt4 book ai didi

c - 在主 MEX 网关函数中准备输出数据

转载 作者:太空宇宙 更新时间:2023-11-03 23:45:58 24 4
gpt4 key购买 nike

我正在使用 mex 编写一个包装函数,用于调用 C 函数。通常,我过去常常使用

在主网关功能中创建输出矩阵
plhs[0] = mxCreateDoubleMatrix(r,c,mxREAL);

plhs[0] = mxCreateNumericArray(3, dim_array, mxDOUBLE_CLASS, mxREAL);

存储输出图像。现在我有一个只返回长整数值而不是图像的函数。我如何处理这个输出?我需要为单值输出创建矩阵还是有任何其他功能?

最佳答案

这取决于你所说的“长整数”是什么意思。按照下表选择新创建的数组 (mxClassID) 的类型以匹配所需的 MATLAB 和 C 类型。为了作弊,您可以使用 mxClassIDFromClassName 从 MATLAB 类型中获取类 ID(例如 mxClassIDFromClassName('single') 选择 mxSINGLE_CLASS )

enter image description here

如果您想创建一个标量,只需使用mxCreateNumericMatrix 创建一个大小为1×1 的数组。 :

mxCreateNumericMatrix(1, 1, mxClassIDFromClassName('int32'), mxREAL)

另请注意,有一个用于创建double 标量的便捷函数,mxCreateDoubleScalar :

mxArray *ps = mxCreateDoubleScalar(initialValue);

所有 mxCreate* 函数都列在 MathWorks 引用页上 Create or Delete Array .

关于c - 在主 MEX 网关函数中准备输出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33596307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com