来自「调用matlab详细程序 调用matlab详细程序」· 代码 · 共 17 行

TXT
17
字号
T= mxCreateDoubleMatrix(1, 10, mxREAL);
	memcpy((unsigned char*)mxGetPr(T),time, 10*sizeof(double));
	/*
	 * Place the variable T into the MATLAB workspace
	 */
       	engPutVariable(ep, "T", T);

plhs[0] = mxCreateNumericArray(NDIMS,dims,mxUINT16_CLASS,mxREAL);

  /* populate the real part of the created array */
  start_of_pr = (unsigned char *)mxGetData(plhs[0]);
  bytes_to_copy = TOTAL_ELEMENTS * mxGetElementSize(plhs[0]);
  memcpy(start_of_pr,data,bytes_to_copy);
步骤:(1)由于matlab矩阵元素格式与bcb的数组元素格式不同,所以要先mxCreateDoubleMatrix函数创建一个matlab能运算的矩阵符号变量,用于存放bcb中的矩阵元素,注意此时仅仅才创建一个符号变量。
       (2)用memcpy分配内存空间,将bcb中的数组元素传递给刚刚创建的matlab元素,拷贝到内存区域。
       (3)用engPutVariable将内存变量导入matlab工作区。
       (4)用engEvalString向matlab工作区域导入命令。

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?