我需要乘以一個矩陣和一個向量。乘以一個矩陣和一個向量
爲了實現我已寫了參數的函數:
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;
}
請顯示您的完整代碼。另請提供樣本輸入,預期輸出和實際輸出。也請告訴我們,到目前爲止,你做了什麼調試... – 2011-12-18 16:37:46
@MarekSebera我從一開始就選擇正確的代碼加入,我不知道我爲什麼我的問題得到了降級...... – TheTime 2011-12-18 16:41:49
我downvoted,因爲你沒有提供你的*完整*代碼,也沒有告訴我們它失敗了什麼輸入,也沒有告訴我們失敗的原因,也沒有告訴我們你通過調試瞭解到了什麼。 – 2011-12-18 16:43:50