gpt4 book ai didi

c++ - 是否可以将 C++/MEX(Matlab) 代码转换为独立的 C++?

转载 作者:太空宇宙 更新时间:2023-11-04 13:14:12 25 4
gpt4 key购买 nike

我正在寻找来自 here 中编写的 MEX 函数的 C++/独立代码.是否可以从 C++/MEX 文件轻松地使 C++ 独立?如果可能的话,我们将不胜感激任何可以更轻松、更快地完成它的提示。

例如如何将 Mexfunction 参数转换为 C++ 类型

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{

//declare variables
mxArray *phi_out, *C_out, *label_out, *mxPhi, *C_in;
const mxArray *mxImg;

const mwSize *mdims;
double *img, *phi, *B, *mask, *C, *label;
double *F;
double usum, vsum, dthresh, lambda, rad;
int iter,countdown,display;
long dims[5];
long dimx, dimy, dimz, numdims;
LL *Lz, *Ln1, *Ln2, *Lp1, *Lp2;
LL *Sz, *Sn1, *Sn2, *Sp1, *Sp2;
LL *Lin2out, *Lout2in;
// and .....

即什么是 mxArray,LL 类型以及如何在 C++ 中定义它?

最佳答案

这很简单,但不能以自动方式完成,因为许多 MATLAB 特定功能需要 MATLAB 的运行拷贝。如果您真的、真的不能更改源代码,您也许可以编写一个填充层,从 MATLAB 函数调用到它们的 C 等效函数,但那不是个好主意。

mxArray 可以映射到 void*,在 MEX 中它是转换所有内容的范例。

The entry in `matrix.h` looks like:
/*
* Forward declaration for mxArray
*/
typedef struct mxArray_tag mxArray;

/*
* Type representing the signature for MEX functions.
*/
typedef void (*mxFunctionPtr) (int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[]);

关于c++ - 是否可以将 C++/MEX(Matlab) 代码转换为独立的 C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38216293/

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