【发布时间】:2014-08-09 06:49:01
【问题描述】:
我正在尝试从 MEX 文件(C 语言)中绘制数据。为了快速做到这一点,我想使用与以下 Matlab 代码相对应的代码:
figure; imagehandle = imagesc(rand(500));
new_CData = rand(500);
set(newCData,imagehandle);
为此,命令 mexSet() 应该可以工作。理想情况下,我想要这样的东西
mex plotX.c
figure; imagehandle = imagesc(rand(500));
A = rand(500);
plotX(A,imagehandle)
使用 mex 函数 plotX。这是我的试用:
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double *x, imagehandle;
(void) plhs;
x = mxGetPr(prhs[0]);
imagehandle = mxGetScalar(prhs[1]);
mexSet(imagehandle,"Cdata",x);
}
这可以编译,但我收到以下错误:“使用 plotX 时出错。图像 CData 需要数字或逻辑矩阵”。
我做错了什么?
【问题讨论】:
-
P.S.我想在 MEX 中绘制的原因是我将数据作为 lib.pointers,并且我不想在绘制之前将它们转换为 Matlab 矩阵,而是直接从它们的物理位置绘制它们。