C 如何从MATLAB将稀疏矩阵传递到共享库
我想将一个稀疏矩阵从MATLAB传递到一个共享库,在那里做一些操作(用C编写),然后返回它 我可以通过一个密集的矩阵来使用,非常简单。但是,我不知道如何从MATLAB将稀疏矩阵传递到共享库。我所发现的都与墨西哥有关 如果您能在MATLAB中提供一些有关稀疏矩阵格式的信息以及在C中的转换,我们将不胜感激C 如何从MATLAB将稀疏矩阵传递到共享库,c,matlab,sparse-matrix,mex,C,Matlab,Sparse Matrix,Mex,我想将一个稀疏矩阵从MATLAB传递到一个共享库,在那里做一些操作(用C编写),然后返回它 我可以通过一个密集的矩阵来使用,非常简单。但是,我不知道如何从MATLAB将稀疏矩阵传递到共享库。我所发现的都与墨西哥有关 如果您能在MATLAB中提供一些有关稀疏矩阵格式的信息以及在C中的转换,我们将不胜感激 提前感谢。MATLAB内部使用(CSC)格式存储稀疏矩阵。一旦理解了格式,就可以通过获取数组pr、pi、ir和jc(分别使用MEX函数)将稀疏矩阵传递给外部代码 pr(和pi如果矩阵是复杂的)是
提前感谢。MATLAB内部使用(CSC)格式存储稀疏矩阵。一旦理解了格式,就可以通过获取数组
pr
、pi
、ir
和jc
(分别使用MEX函数)将稀疏矩阵传递给外部代码
(和pr
如果矩阵是复杂的)是长度为pi
的双精度数组,包含矩阵的非零值nzmax
指向长度为ir
的整数数组,该数组包含nzmax
和pr
中相应元素的行索引pi
指向长度为jc
的整数数组,其中n+1
是稀疏矩阵中的列数。n
数组包含列索引信息。如果稀疏矩阵的jc
-th列有任何非零元素,j
是jc[j]
中的索引,ir
和pr
如果存在,pi
-th列中第一个非零元素的索引,j
是该列中最后一个非零元素的索引。对于稀疏矩阵的jc[j+1]-1
-th列,j
是前面所有列中非零元素的总数。jc[j]
数组的最后一个元素jc
,等于整个稀疏矩阵中非零元素的数量jc[n]
nnz