如何在Labview中对数字求和时以恒定数递增?

时间:2018-10-31 06:21:35

标签: labview

我今天才开始学习Labview,并且已经进行了很多在线搜索并查看示例代码。但是,我仍然发现自己陷入了一些简单的概念。

当前,我正在尝试编写一个简单的代码,将所有小于或等于N的数字加起来,这些数字是3和5的倍数。这是我现在拥有的图像。我觉得这已经很接近了,但是我缺少一个关键方面来使循环将符合此条件的所有数字(而不是最后一个数字)加起来。

要尝试带您完成它-我有一个for循环,我首先指定要迭代的数字N(或者N + 1)。我还将i设置为等于5,以便从数字5开始迭代(我认为)并以5的倍数继续。然后,将输入数字除以3,然后检查余数是否相等是否为0。如果是,那么它也是3的倍数,因此布尔值设置为True,我将此数字加到最终的总和中(+0,因为我不知道该放在哪里)。如果不是,我加0。然后计算出最终的总和。

如果我从左上角的N = 16开始,我的“最终总和”指标为15,这是正确的,因为15是5-15中唯一的数字,是3和5的倍数。但是,如果例如,我尝试1001,我的“最终总和”指标为0。所以我认为它仅对循环中的最后一个数字执行这些检查和总和-否则所有先前的结果都将被覆盖。我不确定如何解决此问题(我尝试了移位寄存器,然后删除了它,因为我认为这会将我的最终总和带到新循环的输入中,这不是我想要的)。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

您可以在此处上传VI或VI片段(非屏幕截图)。因为现在,由于所有导线都是从右到左,因此很难做某事... 关于问题-当然,最终总和是空的,b / c您不添加先前的结果。将其存储到移位寄存器,并在需要时添加值。

答案 1 :(得分:0)

关键是将for循环中的输出隧道设置为“最后一个值”,这意味着写入最终总和的就是最后一次在那条线上。另一种选择是使该隧道建立索引。您可以使用电线进行操作,但是随后您将对其不执行任何操作。如果您对自动生成的数组的数组元素求和(索引就是这样做的),那么您将获得所需的输出。

而且,你不能写信给我;它只是为您提供了for循环的当前索引。

鉴于所执行的简单性,我不必担心执行不必要的步骤,因此您不必担心除1之外的任何其他操作。这很好,因为在LabVIEW中,For循环总是加一。

但是,如果此计算成本更高,则可以通过一些方法来解决,例如减少迭代次数并在计算中使用索引之前缩放索引。

这是对您所做工作的一个小修改,但这应该可行,我只是根据nekomatic的评论进行了修复:

Code Snippet

这是可以实现相同功能,但执行次数较少的代码:

Code Snippet 2