5.4 形状发现过程

 

有了前面的准备工作,我们就可以实现形状发现任务了。

先设定参数:

特征指数名组合记为Nm

Nm=[f1,f2,…,fm]

其中fi是第i个特征指数名。

特征指数组合对应的取值范围记为Ag

Ag=[[a(1),b(1)], [a(2), b(2)],…, [a(m), b(m)]]

其中a(i) ,b(i)) 分别是第i个特征指数的取值下限和取值上限。

1. 发现形状过程可以分为三步:投射参数

Ag中的所有参数投射到相应特征指数值上,投射结果记为Vl

Vl=[[ F(a(1)), F(b(1))], [[F(a(2)), F(b(2))],…, [[F(a(m)), F(b(m))]]

其中F(…)是投射函数。

2. 筛选指定形状曲线段Sp’

指定形状曲线段索引Id

Id=T.pselect@a(F(a(1))f(1)F(b(1))&&…&& F(a(m))f(m)F(b(m)))

连续索引属于一段要发现的形状,索引不连续则属于另一段。

连续索引段Ids

Ids=Id.group(~-#)

其中f(i)是第i个特征指数的取值。

3. 按曲线段长度筛选

按特征指数筛选后,特征指数范围可能满足了,但曲线段长度可能过短或过长,所以要按长度范围筛选曲线段。

Sp’(1)=[xa,xa+1,…,xa+a’-1]

Sp’(2)= [xb,xb+1,…,xb+b’-1]

Sp’(p)= [xp,xp+1,…,xp+p’-1]

其中Sp’(j)是筛选出指定形状的第j段曲线。a’,b’,…是对应曲线段的长度。

将形状长度范围记为dut

dut=[d1,d2]

满足长度范围的连续索引段Ids’

Ids’= Ids.select(d1len(Sp’(j))d2)

指定形状的曲线段Sp

Sp=Ids’.(X(~))

1步投射参数不是必须的,比如筛选原值在[90,95]的曲线段时,只要设置原值这一特征,然后按范围筛选即可。特征指数主要表述相对大小,设置为[-1,1]之间的数就可以了。