gpt4 book ai didi

arrays - 不同长度的多维数组

转载 作者:行者123 更新时间:2023-12-04 00:30:47 26 4
gpt4 key购买 nike

我正在尝试在第二维中创建一个具有不同长度的数组,例如:

  A = 1 3 5 6 9
2 3 2
2 5 8 9

这可能吗?我花了相当多的时间寻找,但无法找到任何一种方式。

最佳答案

是和否。首先没有:

Fortran 中的正确数组,例如如下声明的数组:

integer, dimension(3,3,4) :: an_array

或者像这样
integer, dimension(:,:,:,:), allocatable :: an_array

有规律;每个维度只有一个范围。

但是,如果您想为不规则数组定义自己的类型,则可以,而且相对容易:
type :: vector
integer, dimension(:), allocatable :: elements
end type vector

type :: ragged_array
type(vector), dimension(:), allocatable :: vectors
end type ragged_array

通过这种方法,您可以分配 elements每个 vectors到不同的大小。例如:
type(ragged_array) :: ragarr
...
allocate(ragarr%vectors(5))
...
allocate(ragarr%vectors(1)%elements(3))
allocate(ragarr%vectors(2)%elements(4))
allocate(ragarr%vectors(3)%elements(6))

关于arrays - 不同长度的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18316592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com