发布于 2011-10-17 20:36:25
25楼
今天仔细研究了下,二维表在程序中实现如下:假设表中对应的数据点关系为 z=f(p,t),即由p,t 值可从表中查出对应的z 值。再设实时采集的压力、温度分别为P1和T1
1.建立三个数据块:DB1放z 值(用二维数组),DB2放p值(一维数组),DB3放t 值(一维数组)。(即将三个变量分别放三个DB中)
2.建立三个FC:FC1功能实现线性函数的插值计算,即形如y=y0+(y2-y1)*(x-x0)/(x2-x1)的形式;FC2实现P1、T1在DB2和DB3的位置(假设P1为第r 1行和r2行之间,T1在第 c1 行和c2 行之间,),则这个r 和c 值也是DB1中对应的,即将要最终输出的值在DB表中第r1行和r2行之间,且在第 c1 列和c2 列之间(T在DB3中为行,对应的是DB1中二维数组的列标)。FC3是对DB1进行处理,利用FC2输出的行列数,及行列与地址之间的对应关系,找出最终结果。
3.在主程序中先调用FC2,再调用FC3(FC3调用FC1)
经测试,结果正确,但是稍显麻烦。幸亏我这里用的几张二维表格式相同,里面数据数量相同,可以统一处理。
级别稍低,暂不能贴图,见谅,呵呵!
如果你认为是对的事情,就要勇敢地去尝试;如果不去尝试,又怎么会知道结果呢?