我遇到了矩陣問題。我想要一個簡單的矩陣,並根據其他值賦值。Matrix-「訪問衝突寫入位置0x00900B0C」 - C++中的錯誤
我想擁有某物。像這樣:
i --> // i is my x-value and j my y-value in the matrix
j 25 25 25 25 25 // inital condition values
| 27 26 25 .. .. // filling the matrix with values depending on a
v 31 28 .. .. .. // border condition, the inital values and neighbour values.
.. .. .. .. .. //and so on
我嘗試用代碼來解釋它:
起初我定義一些變量,像
int Matrix[10][1000]; //<-- i´m not sure how to implement a dynamical matrix correctly
// so i just defined its size like this
int i = 0;
int j = 0;
int iter=0;
int Iterator=1000;
矩陣在接下來的步驟我想填滿基與零像:
for (i = 0; i <= size_X; i++) {
for (j = 0; j <= size_Y; j++) {
Matrix[i][j] = 0;
}
}
但它給了我這裏這個錯誤「訪問衝突寫入位置0x00900B0 C「然而..我不明白爲什麼?
而且我的代碼看起來像這樣,以填補矩陣的第一行與inital值:
for (i = 0; i <= Size_X; i++) {
Matrix[i][0] = 25;
但主要的問題,我想,和我的代碼的主要部分是其他的填充插件
do {
for (j = 1; j <= Size_Y; j++) {
Matrix[0][j] = Matrix[0][j - 1] + Fo*0.5*(2.0*Bi*(Umgebungstemperatur - Matrix[0][j - 1]) + 2.0*(Matrix[0 + 1][j - 1] - Matrix[0][j - 1]**) + 2.0*Bi*(Umgebungstemperatur - Matrix[0][j]) + 2.0*(Matrix[0 + 1][j] - Matrix[0][j]));
Matrix[Size_X][j] = Matrix[Size_X][j - 1] + Fo*0.5*(2.0*Bi*(Umgebungstemperatur - Matrix[Size_X][j - 1]) + 2.0*(Matrix[Size_X - 1][j - 1] - Matrix[Size_X][j - 1]) + 2.0*Bi*(Umgebungstemperatur - Matrix[Size_X ][j]) + 2.0*(Matrix[Anzahl_dx- 1][j] - Matrix[Size_X][j]));
for (i = 1; i < Size_X; i++) {
Matrix[i][j] = Matrix[i][j - 1] + Fo*0.5*(Matrix[i - 1][j - 1] - 2.0*Matrix[i][j - 1] + Matrix[i + 1][j - 1] + Matrix[i - 1][j] - 2.0*Matrix[i][j] + Matrix[i + 1][j]);
}
}
iter = iter + 1;
} while (iter != Iterator);
}
最後,我只想寫矩陣爲.txt或.csv文件,但它只是給我的第一行有:通過迭代和闖民宅也neigbour細胞矩陣的矩陣單元正確的值和程序後分解。
什麼是'size_X'和'size_Y'? – 4386427
它只是矩陣的大小 - > size_X = 11和size_Y = 1001 –
我敢打賭,這是因爲您在循環中使用了<='而不是'<'。矩陣中是否有索引11?不,沒有。 – ForceBru