只能一维数组这样。
多维(N维)数组因为每取一个数,需要N个数做为下标
如果第二维(其他维)的位置是固定的,可以这样:
C = A(B,1)
如果不是固定的,则不能这样,所以老老实实循环吧。
注意,不能写成 C=A(B,D)
[Fortran] 纯文本查看 复制代码 program main
implicit none
integer :: A(5,3), B(3),D(3), C(3) , j
A( 1, : ) = [ 5, 4, 8 ]
A( 2, : ) = [ 4, 1, 9 ]
A( 3, : ) = [ 3, 4, 8 ]
A( 4, : ) = [ 1, 2, 8 ]
A( 5, : ) = [ 3, 1, 0 ]
B = [ 1, 3, 4 ]
D = [ 1, 2, 3 ]
Do j = 1 , size(B)
C(j) = A(B(j),D(j))
End Do
Write(6,*)C
end
|