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

조회 수: 8 (최근 30일)
wei zhang
wei zhang 2021년 2월 14일
댓글: Walter Roberson 2021년 2월 15일
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
wei zhang
wei zhang 2021년 2월 15일
@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 2021년 2월 15일
Sorry, I am not familiar with those routines.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Write C Functions Callable from MATLAB (MEX Files)에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by