C中的矩阵转置
Matrix Transpose in C
假设我定义一个矩阵,并按如下方式赋值:
double A[row * column];
for (int j = 0; j < column; j++){
for (int i = 0; i < row; i++){
A[j*row + i] = ((double)rand())/RAND_MAX; // random value
}
}
如何计算该矩阵的转置?我尝试了以下但结果矩阵不正确。
double B[column * row];
for(int j = 0; j < row; j++){
for(int i = 0; i < column; i++){
B[j*row + i] = A[i*row + j];
}
}
索引应该按以下方式完成。
double B[column * row];
for (int j = 0; j < row; j++){
for (int i = 0; i < column; i++){
B[j*column + i] = A[i*row + j];
}
}
假设我定义一个矩阵,并按如下方式赋值:
double A[row * column];
for (int j = 0; j < column; j++){
for (int i = 0; i < row; i++){
A[j*row + i] = ((double)rand())/RAND_MAX; // random value
}
}
如何计算该矩阵的转置?我尝试了以下但结果矩阵不正确。
double B[column * row];
for(int j = 0; j < row; j++){
for(int i = 0; i < column; i++){
B[j*row + i] = A[i*row + j];
}
}
索引应该按以下方式完成。
double B[column * row];
for (int j = 0; j < row; j++){
for (int i = 0; i < column; i++){
B[j*column + i] = A[i*row + j];
}
}