Finding CRS format of matrix in Mex
显示 更早的评论
Hi,
I am using mex bridge to perform some operations sparse matrices from matlab.One of the operations requires me to convert matrix from CSC to CRS format. I was able to get values and col_indices arrays. However, I am not able to understand the exact method by which I can extract row_pointers array of a given matrix in CSC format.
Any help/suggestions will be appreciated.
Thanks in advance.
Cheers.
回答(2 个)
James Tursa
2012-7-8
0 个投票
Can't you just transpose it within MATLAB, and then treat the resulting row indexes as column indexes and column "pointers" as row "pointers" in the CRS format?
Abhishek
2012-7-8
0 个投票
3 个评论
James Tursa
2012-7-8
编辑:James Tursa
2012-7-8
The CSC format that MATLAB uses stores the data in column order. As I understand it, the CSR format stores the data in row order. You will never get the MATLAB data into a routine (e.g., your CUDA) expecting the data in row order without transposing it. Does your CUDA routine have any options for using the transpose of the input w/o physically doing the transpose up front? Also, I think you misunderstood my first reply. The physical transpose of the CSC format is the CSR format ... i.e. transposing it does the conversion for you. You don't need a separate routine for this. You just need to interpret the resulting row indexes as column indexes, and treat the resulting column pointers as row pointers.
Abhishek
2012-7-8
James Tursa
2012-7-8
You can use mexCallMATLAB with your MATLAB variable as the input and call the "transpose" function.
类别
在 帮助中心 和 File Exchange 中查找有关 GPU Computing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!