乘以一个矩阵和一个向量
我需要乘以一个矩阵和一个向量。乘以一个矩阵和一个向量
为了实现我已写了参数的函数:
float** M
尺寸的maxtrix:m×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;
}
你忘了初始化R?如果它是堆栈分配或分配malloc()它的初始状态没有定义。
R已分配和定义。 – TheTime 2011-12-18 16:43:58
@TheTime:但它初始化为全零吗? – 2011-12-18 16:45:03
分配方式如何?你是否初始化它?你为什么不发布一个不能产生正确答案的可编译代码的最小例子? – 2011-12-18 16:46:45
请显示您的完整代码。另请提供样本输入,预期输出和实际输出。也请告诉我们,到目前为止,你做了什么调试... – 2011-12-18 16:37:46
@MarekSebera我从一开始就选择正确的代码加入,我不知道我为什么我的问题得到了降级...... – TheTime 2011-12-18 16:41:49
我downvoted,因为你没有提供你的*完整*代码,也没有告诉我们它失败了什么输入,也没有告诉我们失败的原因,也没有告诉我们你通过调试了解到了什么。 – 2011-12-18 16:43:50