请教一个matlab里面mex编程的问题# Computation - 科学计算
W*W
1 楼
#include
#include
void func(double y, double x)
{
y = 2.0*x;
return;
}
void mexFunction(
int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
double y;
double x;
x=mxGetScalar(prhs[0]);
plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);
y=mxGetScalar(plhs[0]);
func(y,x);
return;
}
程序可以编译,但在matlab里运行 y=f(x)总是得到y=0。
如果把mxGetScalar改成mxGetPr,所有都用指针程序是对的。
请教这是什么原因?
#include
void func(double y, double x)
{
y = 2.0*x;
return;
}
void mexFunction(
int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
double y;
double x;
x=mxGetScalar(prhs[0]);
plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);
y=mxGetScalar(plhs[0]);
func(y,x);
return;
}
程序可以编译,但在matlab里运行 y=f(x)总是得到y=0。
如果把mxGetScalar改成mxGetPr,所有都用指针程序是对的。
请教这是什么原因?