本帖最后由 dhww 于 2018-1-25 10:46 编辑
这段代码大概是这个意思:
核心思想是分段搜索出qw数组中的等差序列。
step1:
以qw第一个元素为基准,向后检索满足以该元素为首的递增等差序列的元素(公差为2E6),设最后一个满足的元素索引值为x。将上述元素做求平均等处理。
step2:
以qw第(x+1)个元素为基准,向后搜索,重复上述步骤。设随后一个满足要求的元素角标为y。
step3:
以qw第y+1个元素为基准,向后搜索,重复上述过程
提示:
1.matlab里面对驻足的索引是从1开始的,labview里面是从0开始的
2.其他的东西我写在图片程序截图的注释里了
-
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
从MATLAB代码里看,每次主循环都设置了新的初始基准zs=qw(i)和段内元素个数计数初始化ii2=1,在这之后再进行内循环段内查找。
如果,内循环的if语句一直没有满足,也就是没有找到下一个数据,那么这一段的等差数列也就只有初始基准值qw(i)一个。所以会单独成一个数列,次数列只有一个元素。
完成上属搜索后,主循环i递增1,开始新一段查找。同上所属,新一段的初始基准值zs=qw(i)。
我的理解是,主循环控制每一段的初始基准,内循环控制当前段内有几个元素。
如果原始数列是[1,2,3,5,6,8,9,12,15],公差设为1,搜索步骤应该是如下:
step1:以1为基准,向后搜索,最后得出数列为1,2,3。
step2:以上一次搜索的最后一个数的下一个数为基准,也就是以5为基准,向后搜索,最后得出数列为5 ,6。
step3:以8为基准,最后得出数列为8,9。
step4:以12为基准,最后得出数列为12。
step5:以15为基准,最后得出数列为15。
所以最终有5个数列。
一周热门 更多>