【发布时间】:2015-12-08 09:03:24
【问题描述】:
我正在尝试实现此代码,但出现以下编译器错误:randn wasn't declared in the scope。
void levyflt()
{
int j;
double beta=1.5,sigma,rand_num;
sigma=pow((tgamma(1+beta)*sin(M_PI*beta/2)/(tgamma((1+beta)/2)*beta*pow(2,((beta-1)/2)))),(1/beta));
for(j=0;j<d;j++)
{
rand_num=randn(-1,1);
u[j]=rand_num*sigma;
rand_num=randn(-1,1);
v[j]=rand_num;
step[j]=u[j]/pow(fabs(v[j]),(1/beta));
L[j]=0.01*step[j];
}
cout<<L[j];
}
【问题讨论】:
-
为什么是 MATLAB 标签?您是否尝试生成 MEX 文件?
-
randn不是一个东西,除非你这样做。 -
noo...但是 randn 是一个 matlab fxn
-
您如何尝试将 MATLAB 函数集成到 C++ 中?
-
您是否要制作 MEX 文件?
randn在 MATLAB 的 MEX 库中不存在。您必须自己创建函数,或使用mexCallMATLAB从 MATLAB 中调用函数。
标签: c++ matlab random interop matlab-compiler