VFP插入一条记录_查找所有table中的最大值

1 引言

table是一个(x,y)值的集合,值对可以按任何顺序排列,通过索引进行查找。当增加一个新的(x,y)值时,它会在table的末尾添加一条记录。在这里我使用了数据库的语言“记录”。这个笔记简要讨论如何在table中添加新的记录。顺便说一下,FLAC3D和3DEC的table FISH比PFC的table FISH多出一些变量,用于特殊场景。(derivative, fft, integrate, spectrum) 

VFP插入一条记录_fish_02

2 table add/Insert 命令

使用table add命令增加一条记录。首先使用FISH创建一个table:

fish def granulometry

    global exptab = table.create('mwu')

    table(exptab,0.00236) = 0.01

    table(exptab,0.005) = 0.152

    table(exptab,0.01) = 0.902

    table(exptab,0.014) = 0.989

    table(exptab,0.02) = 0.991

    table(exptab, 0.028) = 1.0

end

@granulometry

然后使用下面的命令来增加一条记录,这条记录增加到table的末尾, 索引值应该为7。

table 'mwu' add (0.018, 0.9)

“The table  with name mwu had 1 values added.”

我们可以使用下面的命令来检验:

[x1 = table.x(exptab,7)][y1 = table.y(exptab,7)]print @x1, @y1

我们也可以在table中插入一条记录,使用下面的命令:

table 'mwu' insert (0.018, 0.9)[x1 = table.x(exptab,5)][y1 = table.y(exptab,5)]print @x1, @y1

这时,新的记录按照x的值进行了插值,因而该条记录的索引值变成了5. 但是如果新的x值等于原有记录中的x,那么新的记录不是插入了,而是代替了原来的值。在这种情况下总的记录数不变。

在一个用FISH生成的table中,table的索引值是按照x的值来排序的,因此取第一条记录和最后一条记录就能获得x的最小值和最大值。

3 table.value 命令

table.size是一个计数器,获取table的总记录数。

[table_size = table.size('mwu')]

table.value也是双向的,既可以获取值,也可以添加新的数据。

[val = table.value('mwu', table_size)]

下面的代码演示了如何使用table.value.

fish def make_table_res  get_residual_crossover  local t1 = table.create('Analytical')  loop local i (1,100)    ; table x goes from 0 to twice the cross over value    local x = float(i)*2.0*crossover/100.0    if x < crossover      local y = c1 + mu1*x    else      y = c2 + mu2*x    endif    table.value(t1,i) = vector(x,y)  end_loopend

在这段代码中,首先运行FISH程序get_residual_crossover,以此来获得变量crossover的值,然后创建一个table

local t1 = table.create('Analytical')

在接下来的loop语句中,计算x,y的值,然后保存到table中。

table.value(t1,i) = vector(x,y)

VFP插入一条记录_查找所有table中的最大值_03

4 结束语

本文简述了table add/insert,table.size和table.value的用法,table的操作主要应用在解析解和数值解的对比中。灵活应用table的操作功能,特别是table.value的用法,可以极大地扩展应用程序的能力。

与外部数据交互: table命令与table FISH

GIIC-UDEC操作教程(2)---岩石滚落

GIIC-UDEC操作教程(3)---巷道顶板冒落

清理Itasca软件的冗余数据

二维Voronoi 块体生成方法