我想将一维矩阵乘以C中的二维矩阵。 下面是我用2D循环得到的结果的一个示例: (该+应该是一个* I未命中类型)乘以2D矩阵的一维矩阵
所以我得到的值的矩阵C
{
{2,3},
{6,11}
};
以下是在C显示了2D阵列的代码:
void multiply(int n, double ** a, double ** b, double ** c) {
int i, j, k;
for (i = 1; i < n; i++){
for (j = 1; j < n; j++){
for (k = 1; k < n; k++){
c[i][j] += a[i][k] * b[k][j];
}
}
}
}
现在,我试图做同样的,但对于一维矩阵,就像图片: (在+应该是*我想念键入)
这里是对于一维数组代码:
void multiply(int n, double * a, double * b, double * c) {
int i, j, k;
for (i = 0; i < n*n; i++) {
for (j = 0; j < n*n; j++) {
for (k = 0; k < n*n; k++) {
c[i]+= a[j]*b[k];
}
}
}
}
它运行后,我得到的结果,而不是{14400, 14400,14400,14400}
{2,3,6,11}
评论是不适用于扩展讨论;这个对话已经[转移到聊天](http://chat.stackoverflow.com/rooms/137934/discussion-on-question-by-r-nbkd-multiplying-1d-matrixes-like-2d-matrixes)。 –