Я создал разреженную матрицу в MEX, используя mxCreateSparse
.
mxArray *W;
W=mxCreateSparse(n*n,n*n,xsize,mxREAL);
double *wpoint;
wpoint=mxGetPr(W);
for(p=0;p<xsize;p++)
{
Wpoint[(returnindex1(xi[p][0],xi[p][1])-1)*n*n + (returnindex1(xj[p][0],xj[p][1]))]= exp(-df[p]/(SIGMAI*SIGMAI)) * exp(-dx[p]/(SIGMAJ*SIGMAJ));
}
максимальное значение, которое получается из (returnindex1(xi[p][0],xi[p][1])-1)*n*n + (returnindex1(xj[p][0],xj[p][1]))
, равно n*n*n*n
, и я создал разреженную матрицу измерения (n*n)X(n*n)
Когда я отображаю всю матрицу, некоторые из нулевых элементов оказываются ненужными.
Также для больших значений n
ошибка сегментации возникает в wpoint
.