我遇到了矩阵问题。我想要一个简单的矩阵,并根据其他值赋值。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