检查this示例(最后的API示例),我想问几个问题。
1)在这个例子中,我们提供了非零元素的矩阵。虽然矩阵的实际大小是多少?这些是矩阵的元素还是包含非零元素的位置?
2)我可以在计算中使用(在像culaSparseSetDcooData这样的函数中使用)矩阵A,它将包含零和非零元素吗? 如果我想创建一个仅用于测试的样本矩阵,我是否应该创建一个零元素的矩阵,然后用一些元素填充它然后呢?
答案 0 :(得分:2)
关于1)有趣的是,COO格式的矩阵大小没有明确规定:它由矩阵的非零元素的坐标组成。如果您有一个包含1个非零元素的COO矩阵,那么这可能是
double a[1] = { 1.0 };
int colInd[1] = { 10 };
int rowInd[1] = { 20 };
和(从行/列索引可以看出)描述至少大小为11 * 21的矩阵的元素,或者它可能是
double a[1] = { 1.0 };
int colInd[1] = { 1000 };
int rowInd[1] = { 2000 };
并描述至少大小为1001 * 2001
的矩阵元素然而,在这个例子中,似乎这是一个二次矩阵,n=8
似乎是大小。 (不幸的是,似乎没有culaSparseSetDcooData
函数的详细文档......)
关于2)这不完全清楚。如果您的问题是“非零”值可能(实际上)是否具有值0.0
,那么我可以说:是的,应该允许这样做。但是,您所引用的示例已经显示了如何创建一个简单的测试矩阵。