0
我想要這樣的: 乘以3x3矩陣與3x1矩陣。我嘗試將我的1維數組轉換爲2維。我認爲這很好,但後來在乘法中我得到錯誤。但我不知道爲什麼。這是我的代碼。不同尺寸的C++矩陣乘法
// 20 -20 0 150
//-20 40 -20 x 0
// 0 -20 30 400
int n = 3;
double *tab_P = new double [n];
tab_P[0] = 150;
tab_P[1] = 0;
tab_P[2] = 400;
double **tab_H;
tab_H = new double* [n];
for(int i=0; i<n; i++)
tab_H[i] = new double[n];
tab_H[0][0] = 0.2;
tab_H[0][1] = 0.15;
tab_H[0][2] = 0.1;
tab_H[1][0] = 0.15;
tab_H[1][1] = 0.15;
tab_H[1][2] = 0.1;
tab_H[2][0] = 0.1;
tab_H[2][1] = 0.1;
tab_H[2][2] = 0.1;
double **tmp_P;
tmp_P = new double *[n];
for(int i=0; i<n; i++)
tmp_P[i] = new double [1];
for(int i=0; i<n; i++){
for(int j=0; j<1; j++) {
tmp_P[i][j] = tab_P[i];
}
}
double **result = new double * [n];
for(int i=0; i<n; i++)
result[i] = new double [1];
int i,j,k;
int s = 0;
for(i=0; i<n; i++) {
for(j=0; j<1; j++) {
s = 0;
for(k =0; k<n; k++)
s += tab_H[i][k] * tmp_P[k][j];
result[i][j];
}
}
你在哪裏爲* tab_P分配內存?再次,你看到的錯誤是什麼,乘法結果?還是一維數組? – theAlias
@theAlias他在頂部做了這個,它只是一個一維數組。 – cmaster
最後在循環的某處出現錯誤。訪問衝突讀取位置....我認爲循環中的索引有問題,但我看不到在哪裏。 – Madbrush