Redian新闻
>
请教一个matlab里面mex编程的问题
avatar
请教一个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,所有都用指针程序是对的。
请教这是什么原因?
avatar
g*y
2
you need to use pointer to assign the memory to y.
double *x,*y;
...
y = mxGetPr(plhs[0]);
...
func(y,x)
void func(double *y, double x)

【在 W*W 的大作中提到】
: #include
: #include
: void func(double y, double x)
: {
: y = 2.0*x;
: return;
: }
: void mexFunction(
: int nlhs, mxArray *plhs[],
: int nrhs, const mxArray *prhs[])

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。