本帖最后由 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.其他的东西我写在图片程序截图的注释里了
-
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我不明白,公差为1为何7和9各成一个数列。你的意思是,如果原始数列是1,5,9,13,17,那公差是1的时候,四个数各成一个数列?公差为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个数列。
昨晚在床上手机打了那段文字,没带电脑回去。
刚刚用MATLAB将代码实现了一下。
公差设定都是1的时候跑出来是下面两张图
多谢您指导!
我试一下。初学者,很不熟悉。
未命名 1.vi 下载积分: 积分 -1 分
10.58 KB, 下载次数: 2, 下载积分: 积分 -1 分
一周热门 更多>