【发布时间】:2015-04-01 07:25:14
【问题描述】:
我有一个方阵double **A
我知道如何遍历这个矩阵:
for (int i = 0; i < MATRIX_SIZE; i++) {
for (int j = 0; j < MATRIX_SIZE; j ++) {
int val = A[i][j];
printf("val: %d\n", val);
}
}
但是,我想知道如何将整行或整列分配给一个变量,因为我有这个 ** 矩阵(** 指向指针废话的指针仍然有点令人困惑。我相信它说的是一个列表双打列表)。
为了添加更多背景,我尝试提取行和列,以便执行cuda 矩阵乘法。我在网上看到很多使用一维向量表示矩阵的文档(即double* A)但是,我对** 感到困惑
【问题讨论】:
-
j < i;或j < MATRIX_SIZE?在 C++ 中更好地使用std::array< std::array<int, MATRIX_SIZE>, MATRIX_SIZE> -
@MohitJain 哎呀,这是一个错字。现在修复。谢谢
-
您不能将整行或整列分配给变量。
-
你想把二维数组转换成一维数组吗?
-
为一维数组分配空间,然后可以使用 oneD_Array[i*MATRIX_SIZE+j]=A[i][j]