如何从MATLAB向C中传递结构体并读取?

我需要用MATLAB对采集卡采集的数据进行进一步处理,但是采集卡只能通过C语言进行控制。因此希望能够用C写采集卡控制程序,并用MATLAB进行控制。因为某些控制参数与MATLAB代码有联动,需要从MATLAB向C语言的控制代码传递参数。由于参数较多,希望能够直接用一个结构进行传递。如:
MyStruct.para1=1;
MyStruct.para2=2;
这样我只需要传递一个MyStruct即可。我现在用的是MATLAB的C MEX API进行传递,但是我不知道怎么从C语言中读取MATLAB的结构中的数值。我现在采用的方法是(该代码作用是返回与输入相同的值,用于查看变量输入是否正确):

#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
    double  *pointerlhs, *pointerrhs[2];          /* pointer to real data in new array */
    mwSize index;
    
    /* Create an m-by-n mxArray; you will copy existing data into it */
    plhs[0] = mxCreateNumericMatrix(1, 2, mxDOUBLE_CLASS, mxREAL);
    //pointerrhs[1] = mxGetPr(prhs[0]);
    pointerlhs = mxGetPr(plhs[0]);

    /* Copy data into the mxArray */
    for (index = 0; index < 2; index++) {
        pointerrhs[index]= mxGetPr(prhs[index]);
        pointerlhs[index] = *pointerrhs[index];
    }

    return;
}

我现在需要将结构内的参数一个一个传递进去,如在MATLAB中调用的时候是:
MyFunction(MyStruct.para1,MyStruct.para2)
但是这样并没有发挥出结构体的优势。
请问如何在C语言中将MATLAB中的结构体中的数值提取出来?

我尝试过直接传一个参数(MyStruct)进去,但是会报错(MATLAB提示应退出重启MATLAB)

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。