0

检查 这个例子(最后是API例子),我想问几个问题。

1)在示例中,我们为矩阵 a 提供非零元素。但矩阵的实际大小是多少?这些是矩阵的元素还是包含非零元素的位置?

2)我可以在计算中使用(在像 culaSparseSetDcooData 这样的函数中使用)包含零和非零元素的矩阵 A 吗?如果我想创建一个示例矩阵只是为了测试,我是否应该创建一个零元素的矩阵,然后用一些元素填充它?

4

1 回答 1

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,那么我可以说:是的,这应该是允许的。但是,您提到的示例已经显示了如何创建一个简单的测试矩阵。

于 2014-02-26T12:14:00.740 回答