转置32x64矩阵 if(N==64&&M==32){ 国际一,j,C[M][M],CC[M][M],D[M][M],DD[M][M];; //得到矩阵的左半部分,然后转置 对于(i=0;i
转置32x64矩阵转置32x64矩阵 if(N==64&&M==32){ 国际一,j,C[M][M],CC[M][M],D[M][M],DD[M][M];; //得到矩阵的左半部分,然后转置 对于(i=0;i,c,matrix,transpose,C,Matrix,Transpose,转置32x64矩阵 if(N==64&&M==32){ 国际一,j,C[M][M],CC[M][M],D[M][M],DD[M][M];; //得到矩阵的左半部分,然后转置 对于(i=0;i
if(N==64&&M==32){
国际一,j,C[M][M],CC[M][M],D[M][M],DD[M][M];;
//得到矩阵的左半部分,然后转置
对于(i=0;i 对于(i=M;i在声明矩阵时int i,j,C[M][M],CC[M][M],D[M][M],DD[M][M];
您使用的是大小M
而M是32,那么它怎么可以接受64个值呢?它将仅是32 x 32
矩阵。如果不成功,它会做什么?使用C[j][i]=A[i][j];
简单地获得转置。
if(N == 64 && M == 32) {
int i, j, C[M][M], CC[M][M], D[M][M], DD[M][M];
// get left half of the matrix, and transpose
for (i = 0; i < M; i++) {
for (j = 0; j < M; j++) {
C[i][j] = A[i][j];
}
}
squareblocktranspose(M, M, C, CC, 4);
// get right half of the matrix, and transpose
for (i = 0; i < M; i++) {
for (j = M; j < N; j++) {
D[i][j-M] = A[i][j];
}
}
squareblocktranspose(M, M, D, DD, 4);
// put transposed left half of the matrix as top half of new matrix
for (i=0; i < M; i++) {
for (j = 0; j < M; j++) {
B[i][j] = CC[i][j];
}
}
// put transposed right half of the matrix as bottom half of the old matrix
for (i=M; i<N; i++) {
for (j = 0; j < M; j++) {
B[i][j] = DD[i-M][j];
}
}
}