How to change the class of mxArray double to int in c mex ?

8 visualizaciones (últimos 30 días)
wei zhang
wei zhang el 14 de Feb. de 2021
Comentada: Walter Roberson el 15 de Feb. de 2021
Hi,
I am trying to convert a double class mxArray to int. I don't know how to do that. My c code is like below. I would like to create the mxGPUArray "row" in int class, which is the row index of matrix A. In my code, the type of "row" is double.
#include "mex.h"
#include "gpu/mxGPUArray.h"
#define A prhs[0]
void mexFunction(int nlhs, mxArray * plhs[], int nrhs, const mxArray * prhs[])
{
mxArray *tmp[3];
mexCallMATLAB(3,tmp,1,&A,"find");
mxGPUArray const *row = mxGPUCreateFromMxArray(tmp[1]);
}
  3 comentarios
wei zhang
wei zhang el 15 de Feb. de 2021
@Walter Roberson Thank you for your comment. 1. The uint32 is good to convert data type. 2. I use find function to convert sparse matrix A into COO format. My final goal is to use HYB format of sparse matrix in conjugated gradient method solving Ax = b.To convert matrix A to HYB format, I plan ot use cusparseXcoo2csr and cusparseDcsr2hyb function in cusparse, which transfer sparse matrix from COO to CSR, then to HYB. That is why I need the indices. If you have any suggestion, I would like to know. Cudamex coding is some hard for me.
Walter Roberson
Walter Roberson el 15 de Feb. de 2021
Sorry, I am not familiar with those routines.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Write C Functions Callable from MATLAB (MEX Files) en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by