0
如下例所示,我需要在尺寸为(6 * 4)的Fortran中将尺寸为3 * 8的二维矩阵(A)重塑为矩阵(B)。在Fortran90中重塑
Matrix A
1 2 1 2 1 2 1 2
5 6 5 6 5 6 5 6
7 8 7 8 7 8 7 8
Matrix B
1 1 1 1
2 2 2 2
5 5 5 5
6 6 6 6
7 7 7 7
8 8 8 8
我试着按照以下方式循环,但对于大型矩阵似乎很慢。我是用Fortran 90想,如果这样的整形是可能的RESHAPE
功能
counter=1
do i=1,size(A,2),2
seq1(counter)=i
counter=1+counter
end do
counter=1
do i=2,size(A,2),2
seq2(counter)=i
counter=1+counter
end do
counter=1
do i=1,size(A,1)*2,2
S_1(counter)=i
counter=1+counter
end do
counter=1
do i=2,size(A,1)*2,2
S_2(counter)=i
counter=1+counter
end do
Do i=1,size(A,1)
B(S_1(i),:)=A(i,seq1)
B(S_2(i),:)=A(i,seq2)
END DO