乘以矩阵和向量

时间:2011-12-18 16:35:19

标签: c vector matrix multiplying

我需要将矩阵和向量相乘。

为了实现这一目标,我编写了一个带参数的函数:

float** M维度的最大值:m x n。

float* V长度为n。

的向量

float* R我存储结果,长度为m的向量,已经分配。

int m, int n长度。

这是我的代码:

int i,j;

for (i=0;i<m;i++){
    for (j=0;j<n;j++){
            R[i]+=(M[i][j]*V[j]);
        }
}

完整的功能代码:

void m_mult_v(float** M, float* V, float* R, int m, int n) {

    int i,j;

    for (i=0;i<m;i++){
        for (j=0;j<n;j++) {
            R[i]+=(M[i][j]*V[j]);
        }
    }
}

问题是我得到的结果不正确。 : - /任何想法?

感谢您将来的答案!

修改

感谢您提供的解决方案!

我刚添加了这部分代码,将R设置为全零。

for (i=0;i<m;i++){
    R[i] = 0;
}

1 个答案:

答案 0 :(得分:1)

你忘了初始化R?如果使用malloc()进行堆栈分配或分配,则不会定义其初始状态。

相关问题