想象一下,我有一个生成细胞的模型,每年它会在一年中产生不同的细胞。每年年底,我想在三维数组中捕获所有现有的单元格和属性,包括年份,单元格的信息以及其他一些属性,所以让我们说3列
我有几年的时间,我在开始时就知道的事情,让我说我有10年
我不知道在年底之前有多少个细胞,所以这是可变的。
,,'year 1']
[,1][,2][,3]
[1]
[2]
[..]
[?]
[,,'year 2']
[,1][,2][,3]
[1]
[2]
[..]
我想知道如何才能最好地动态创建并支持这个数组的第一个维度?!
我拥有所需的年终信息,目前位于向量中(例如): [,1] - 很容易,包含年份,例如2009年
Tor单元属性,我通过循环遍历包含这些属性的不同向量并将它们放入
来填充它 [,1] [,2][,3]
[1] 2009
与
[,2] - the position of the cell , taken from a pos_cell array at i =1
[,3] - a property of the cell, taken from the prop_cell array at i =1
所以我们有:
[,1] [,2] [,3]
[1] 2009 1 0.4
现在,
与
[,2] - the position of the cell , taken from a pos_cell array at i =2
[,3] - a property of the cell, taken from the prop_cell array at i =2
[,1] [,2] [,3]
[1] 2009 1 0.40
[2] 2009 2 0.44
我不认为这一切都是最有效的方式。目前我只需要比我目前使用的东西更好的东西,这是一个有3个预定义尺寸的数组,因为我不断为第一个维度命中新的最大值。
我在想这样的事情:
How to add new element to dynamical array in Fortran90
但我不确定它实际上是否允许有不同的尺寸,这是一个很好的前进方向吗?但首先,我将如何开始呢?
我看了
https://libatoms.github.io/QUIP/table.html但这太新了,仅适用于2D
我正在使用Fortran 90。
哦,请不要告诉我如何在新的堡垒中做得更好。在其他论坛关于这个主题的条目中,人们倾向于不回答这个问题,而只是说如何用新的fortran版本来完成。 期待您的建议。