乘以矩阵和向量,逻辑错误

时间:2012-10-23 07:32:33

标签: c arrays matrix

我有一个函数,即乘以矩阵和向量:

 double *matrix_vector_multiply(int rows, int cols,
                           double **mat, double *vec)
{

    double *answer = malloc(rows * sizeof (double));
    int i,j;
    for (i=0; i<rows; rows++)
    ans[i]=0;

    for (i=0; i<rows; rows++){

        for (j=0; j<cols; cols++)
             {
            answer[i] = answer[i] + mat[i][j] * vec[j];
            }
        }
    return ans;
}

我不断得到输出的所有0 ..有关如何解决它的任何想法?

4 个答案:

答案 0 :(得分:0)

您有ansanswer。我希望你能弄明白其余部分;)

答案 1 :(得分:0)

这是您发布的实际代码吗?除了ansanswer等明显的问题之外,你的for循环也是完全错误的,例如。

for (i=0; i<rows; rows++)

应该是:

for (i=0; i<rows; i++)

    for (j=0; j<cols; cols++)

应该是:

    for (j=0; j<cols; j++)

答案 2 :(得分:0)

两个for循环中的变量i和j永远不会改变,因为你似乎增加了行和列。这意味着您将始终在第二个for循环的主体中执行相同的求和。你的其他答案别无选择,只能保持0,因为你从未在init之后计算它们的值。

答案 3 :(得分:0)

您将所有值存储为ans中的0,然后返回ans。而您正在明确修改变量answer

相关问题