我写了一个顺时针旋转2D矩阵的方法。
static double[][] rotateCW(double[][] mat) {
final int M = mat.length;
final int N = mat[0].length;
double[][] ret = new double[N][M];
for (int r = 0; r < M; r++) {
for (int c = 0; c < N; c++) {
ret[c][M-1-r] = mat[r][c];
}
}
return ret;
}它运行得很好。但我也想创建一个旋转矩阵CCW的方法,但我不确定需要更改哪些值才能做到这一点。目前,我的"hack“是使用此方法旋转CCW三次。
发布于 2013-11-27 00:28:48
我认为这种方式应该是可行的:
static double[][] rotateCCW(double[][] mat) {
final int M = mat.length;
final int N = mat[0].length;
double[][] ret = new double[N][M];
for (int r = 0; r < M; r++) {
for (int c = 0; c < N; c++) {
ret[N-c-1][r] = mat[r][c];
}
}
return ret;
}https://stackoverflow.com/questions/20221677
复制相似问题