在Matlab中,end
索引允许我访问最后一项。
> array = [1 2 3 4 5 6 7];
> array(end)
ans = 7
我如何在Fortran中做同样的事情?
program hello
integer array(7)
array = (/1, 2, 3, 4, 5, 6, 7/)
!print *, array(end)
! 1
!Error: Legacy Extension: REAL array index at (1)
! print *, array(-1)
! 1
!Warning: Array reference at (1) is out of bounds (-1 < 1) in dimension 1
! print *, array(0)
! 1
!Warning: Array reference at (1) is out of bounds (0 < 1) in dimension 1
end program Hello
答案 0 :(得分:18)
array ( ubound (array) )
size
仅在数组为1索引时才有效。
答案 1 :(得分:7)
没有这样的便利表示法,你需要这样做
array(size(array))
在较旧的fortran版本中,您甚至没有 size()
并且需要自己跟踪维度
值得注意的是fortran数组可以被定义为具有负索引,因此在其他一些语言中使用的结束符号将是不明确的