【发布时间】:2017-05-24 06:09:05
【问题描述】:
假设我定义了一个矩阵并按以下方式赋值:
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];
}
}
【问题讨论】:
-
“它不起作用”到底是什么意思?有错误信息吗?
-
它没有生成正确的矩阵@Codor
-
显示sn-p生成输出,实际输出和预期输出。
-
转置矩阵类似于交换两个变量的值。想想那个简单的案例以及那里可能出现的问题。然后检查你的代码是否犯了同样的错误。
-
除非
column == row,复制时需要使用不同的乘数。
标签: c matrix transpose matrix-transform