c++mex错误:数组下标的类型“double[mwSize]”无效
c++ mex error: invalid types ‘double[mwSize]’ for array subscript
我知道以前也问过类似的问题,但它们似乎围绕着常规的c++
代码,而不是为创建mex
文件而编写的c++
代码。
正如这篇文章的标题所示,我得到了以下错误:
gaussDraw.cpp:110: error: invalid types ‘double[mwSize]’ for array subscript
mex: compile of ' "gaussDraw.cpp"' failed.
现在,我对c++
编码还很陌生,但我想我很快就学会了。
以下是我的mexFunction
和变量声明的声明。您会注意到我已经声明了double *x
,它似乎是有问题的变量(当我到达line 110
时,我们会看到(:
void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[]){
int i,j,numactiveid,count;
mwSize p,n,k;
double *newX, *stDev, *x, *c, *d, *l, *u, *tol, *y, *finallambda, *finallb, *finalub, *dd;
int numVals,indexPos,numToDraw,curRandVal;
double tempXVal,curStd, curMean,lambda,temp,lb,ub,tempDVal,xBarVal;
int *activeId;
以下是我如何设置x
:
// Get input values
p=mxGetM(prhs[0]); //get the size of the original x vector
x = mxGetPr(prhs[0]);//Original x vector
以下是违规代码块(我单独声明了每个值,以明确违规发生的位置,并添加了一条注释,显示对应于第110行(:
for(k=0;k<indexPos;++k){
tempXVal = tempX[k];
tempDVal = dd[k];
xBarVal = x[k];//This is line 110
temp[k] = xBarVal + (tempXVal * tempDVal);
}
所以,我不确定为什么会出现这个错误。如果重要的话,x
将是从matlab传递到[希望未来]mex
文件的向量/数组。如果有人能帮我,我真的很感激。谢谢!
您的行号似乎不正确。它实际上是在抱怨下面的行,其中temp
是double
,而您正试图将其索引为temp[k]
。
相关文章:
- C++在数学计算中将double转换为int
- 在c++中为double类型的数组创建一个unique_ptr
- vector<vector<double>> to mxArray using memcpy
- (double) 和 double() 之间的区别
- C++标准是否允许<double>在没有开销的情况下实现 std::可选
- C++ Version Of Double.longBitsToDouble
- 错误:类型"double()"和"double()"的操作数无效到二进制&quo
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- 为什么 nlohmann/json 序列化 "null" 而不是在 double 上"0"?
- 使用 std::vector<double> 访问由 std::unique_ptr<double[2] 管理的数据>
- 将 std::vector<double> 从 C++ 包装到 C 以在 Swift 中使用
- 错误:无法将"<lambda(double)>"转换为"double(*)(double)"
- 如何正确将"strings"转换为"double"?
- 如何在<double>矢量中创建复杂类型的模板<T>?
- "double* grade"、"double *grade"和"double* fn()"有什么区别?
- 在不损失精度的情况下将double从C++传输到python
- 重复使用预分配的向量<复杂<double>>作为<double>长度两倍的向量
- 编译器给出错误:format 指定类型 'float *',但参数的类型'double' [-Wformat]
- Zedboard zynq-7000 Opencl 浮点数从类型 'double*' 强制转换为类型 'double' 无效
- c++mex错误:数组下标的类型“double[mwSize]”无效