打印
[求助讨论]

数组中的相邻元素做乘积运算

[复制链接]
2505|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
364121850|  楼主 | 2018-12-9 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
设计VI,产生一维数组,后将相邻的一对元素相乘(从元素0和元素1开始的的数组),最后输出结果数值。例如,输入数值为1,23,10,5,7,11,则输出数组为23.50.35.77.

相关帖子

沙发
songchenping| | 2019-2-11 08:18 | 只看该作者
利用移位寄存器

使用特权

评论回复
板凳
tjdkycj| | 2019-2-22 19:18 | 只看该作者
你上面说的最后的输出应该是23.230.50.35.77吧。我暂且以这个来说。LabVIEW中移位寄存器只能得到上一次的数值,也就是说,当进入For循环的是1,是不能用移位寄存器得到它下一位的23来和1想乘的。所以我想的是,一个For循环,数组进入的时候隧道模式是索引,这样数组的元素一个个按顺序进去,索引上面是一个移位寄存器,不设初值是0。索引进来的数值与移位寄存器的数值相乘,意思就是当前进来的和上次进来的相乘,需要注意的是这次进来的索引端口要引两条线,一条和左端的移位寄存器相乘,一条要接到右边的移位寄存器。相乘得到的输出端接到For循环的右边的输出端,输出端隧道模式选择索引。For循环不用接循环次数端,因为接入数组后且隧道模式是索引次数就是数组中的元素个数,此例中为6次。最后得到的也是6个元素的数组→0.23.230.50.35.77,其中第一个0是不需要的,可以用取子数组的那个函数把后面5位取出来。一般来说如果你说的那个VI产生的随机数组的个数是定的,你也可以确定取子数组的函数的输入参数是常量。如果产生的随机数组的个数是不定的,你可以用另外一个测量数组大小的函数,具体叫什么名字我忘了,好像叫数组大小。那个可以得到数组中的元素个数,也就是这个数组的长度。然后在开始你先把VI产生的数组的元素个数用这个函数查出来,然后减1之后连接到取子数组函数的那个长度上,取子数组函数的另一个输入参数索引你就直接给常量1就行了。在这个例子来说,就是测量数组大小的函数得到的是6,然后-1得到5,连到取子数组函数的那个长度参数端,意思就是取5个元素,然后索引是1,就会把0.23.230.50.35.77中的23.230.50.35.77取出来,就是你要的结果。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝