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

1)在示例中,我们正在提供具有非零元素的矩阵a.但是矩阵的真实大小是什么?这些是矩阵的元素或包含非零元素的位置?

2)我可以在计算(如culasparsesetdcoodata等函数中使用)一个矩阵A,其将包含零和非零元素? 如果我想创建一个刚刚测试的示例矩阵,如果我必须创建一个带零元素的矩阵,然后用一些元素填充它,然后填写它?

有帮助吗?

解决方案

关于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函数的详细文档......)

关于2)这并不完全清楚。如果您的问题是“非零”值可能(实际上)有一个属性的值,那么我可以说:是,应该允许。但是,您提到的示例已经显示了如何创建一个简单的测试矩阵。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top