mexFunction-解读数组结构
来源:互联网 发布:求好玩的网络手机游戏 编辑:程序博客网 时间:2024/06/05 04:47
今天下午看tld 代码,看到over_lap 函数里,输入的第二个变量明明是二维数组,但是在mexfunction里只用 *x 就能引用返回值,发现和c不一样啊,于是动手写了个小测试 C.cpp
#include <mex.h>
double add(double a,double b){
return a+b;}
void mexFunction(int nlhs ,mxArray *plhs[] ,int nrhs, const mxArray *prhs[])
{
double *x = mxGetPr(prhs[0]);
double *z=x+1;
int M1 = mxGetM(prhs[0]); int N1 = mxGetN(prhs[0]);
mexPrintf("Hello word!\n");
mexPrintf("%d%d\n",M1,N1);
mexPrintf("%f\n",z[3]);
mexPrintf("%f\n",x[3]);
} 在matlab中 mex 生成可执行代码,建立两个变量 a=[2,3,4;4,5,6] b=[8 9 0]
然后运行C(a,b) 输入 2 3// a 是2*3的矩阵
4.0000
6.0000 如果是c的话x[3] 肯定会出错的而且也得不到值,这里却得到了6 ,如果 竖着数a的话,发现0,1,2,3 第四个刚好是6. 同样 *z=x+1,但是z[3] 怎么会是4呢 ,如果同样,z指向 a 的5(竖排第2个),那么z[3] 也就是5 再往回3个 刚好是4 。这下可以看出 x 其实就像是指向一个一维数组 ,这个数组是把a 竖着排成的。
这只是我的猜测,不知道对不对,错的话希望指出。
- mexFunction-解读数组结构
- mexFunction 解读
- mexFunction
- mexFunction
- 关于matlab与C++混合编程,关于接口函数MexFunction的编写,特别是结构体数组的传出到matlab的方法
- matlab和c++混合编程---Mex结构和mexFunction参数传递
- 解读eXtremeComponents代码结构
- TOMCAT目录结构解读
- 解读 JPG图片结构
- TOMCAT目录结构解读
- Kafka log结构解读
- DCGAN结构解读
- CGAN结构详细解读
- 混合编译mexFunction
- 如何写mexFunction函数
- 解读PHP数组排序
- 深度解读数组操作
- 结构数组
- poj3983 算24点
- HTTP就绪状态和HTTP状态码
- 搜索(A - Lake Counting)
- 关于DirectX高级动画书中使用的9.0bsdk的升级说明 cXParser类(dx9.0c sdk vs2003编译运行通过)
- Linux date命令详解
- mexFunction-解读数组结构
- Uboot的第二阶段
- FAFU-1043 最大和谐子方阵 DP
- 在校(应届)大学生JAVAEE职业规划图
- 关于jquery操作iframe中内容, 无法正常显示的问题
- make menuconfig 错误
- aop的实现原理
- ubuntu12.04安装libgl1-mesa-glx:i386问题解决办法
- yii 验证码 CCaptcha的总结