matlab libpointer,libpointer作为Matlab中MEX函数的输入

在Matlab中,我有一个进程(一个使用calllib的数据采集,但这并不重要),它将指针(libpointer)返回给一个大型数组 . 我想在MEX文件中使用这些数组 . 如果我有一个libpointer X到这个数组,我怎么能在MEX文件中使用它?

当然,有可能将其分配给一个新的变量,比如

A = X.Value;

但我想这个任务将复制数组,我不想要的 .

所以我的问题是,有没有办法使用libpointer(=数组的地址)作为MEX函数的输入参数,并从MEX中的这个输入参数中检索值?由于prhs []应该是mxArray,我不知道它应该如何工作 .

任何帮助,将不胜感激!

Update 2014-08-11: 最小示例代码:

#include "mex.h"

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

{

(void) plhs;

mexPrintf("%d \n",prhs[0]); // gives back e.g. "7209090"

mexPrintf("%p \n",prhs[0]); // gives back e.g. "00000142006E0082"

}

然后Matlab代码就像:

mex cfunction.c

pv = libpointer('doublePtr',112);

cfunction(pv)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值