请问这一段MATLAB代码如何用LabVIEW实现

2019-07-17 14:01发布

本帖最后由 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.其他的东西我写在图片程序截图的注释里了



QQ截图20180125103811.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
老蜗牛
1楼-- · 2019-07-18 09:48
本帖最后由 老蜗牛 于 2018-1-25 22:10 编辑
dhww 发表于 2018-1-25 19:55
是的!只差一点,公差为1的时候,7和9也要单独、分别算一个数列。
请问您能不能把vi发给我?真心求指点,万分感谢

我不明白,公差为1为何7和9各成一个数列。你的意思是,如果原始数列是1,5,9,13,17,那公差是1的时候,四个数各成一个数列?公差为2的时候,这四个数也是四个数列?
dhww
2楼-- · 2019-07-18 12:05
老蜗牛 发表于 2018-1-25 22:08
我不明白,公差为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个数列。
infor_work
3楼-- · 2019-07-18 16:31
 精彩回答 2  元偷偷看……
dhww
4楼-- · 2019-07-18 20:49
老蜗牛 发表于 2018-1-25 22:08
我不明白,公差为1为何7和9各成一个数列。你的意思是,如果原始数列是1,5,9,13,17,那公差是1的时候,四个数各成一个数列?公差为2的时候,这四个数也是四个数列?

昨晚在床上手机打了那段文字,没带电脑回去。
刚刚用MATLAB将代码实现了一下。
公差设定都是1的时候跑出来是下面两张图
TIM截图20180126092625.png
TIM截图20180126092203.png
dhww
5楼-- · 2019-07-19 02:49
infor_work 发表于 2018-1-26 09:20
这段文本代码,直接用公式节点就可以实现了。都不用怎么修改。

多谢您指导!
我试一下。初学者,很不熟悉。
sszx2007
6楼-- · 2019-07-19 02:54
QQ截图20180126094347.png
QQ截图20180126094316.png

未命名 1.vi 下载积分: 积分 -1 分

10.58 KB, 下载次数: 2, 下载积分: 积分 -1 分

一周热门 更多>