我正在努力为我的大学里的任务筹集一个矩阵,但我遇到了问题。我正在使用此代码执行此操作,但它不起作用,我无法理解为什么。有人可以帮忙吗?
void RaiseThem(float x[][3], float y[][3], int b){
int i,j,w,k;
for( i = 0 ; i < 2 ; ++ i )
for( j = 0 ; j < 2 ; ++ j )
y[i][j] = ( i == j ) ;
float temp[3][3];
for(w=0;w<b;w++)
{
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
temp[i][j]=0;
for(k=0;k<2;k++)
{
temp[i][j]+=y[i][k]*x[k][j];
}
}
}
for(i=0;i<2;i++){
for(j=0;j<2;j++)
{
y[i][j]=temp[i][j];
}
}
}
}
答案 0 :(得分:2)
你的循环范围太小了。
你的矩阵(大概)是3x3,所以索引是0-2。您正在检查i < 2
和j < 2
,因此i
和j
不能为2。
您需要将测试更改为i < 3
和j < 3
。