Building/operating 在 LabView 嵌套循环内的数组上;没有返回预期结果
Building/operating on an array inside LabView nested loop; not returning expected result
我正在尝试创建一个简单的 VI,用于查找所有数字 1-N 的倍数的最小数字。我要实现的方法是一个带有嵌套 for 循环的 while 循环。对于每个输入数字(我们称之为 M),嵌套的 for 循环遍历数字 1-N 并测试 M/1、M/2、...、M/N 的余数是否为零与否。如果余数为零(即我的数字 M 可以被这个数字整除),代码将数字 1
添加到 for 循环中的数组。如果它不可整除,则将 0
添加到数组中。
然后,在 for 循环之外,所有数组元素相乘。如果乘积是 0
(这意味着数字 1-N 中至少有一个不是 M 的因数),那么我的 while 循环会继续到下一个输入数字 M。但是如果乘积不为零, while 循环停止,指标应显示数字 M(这是数字 1-N 的倍数)。
我认为这是一个非常简单的想法,但由于某种原因我的代码无法正常工作。例如,我尝试输入 M=4(在 divisible by numbers up to
槽中指示),并期望在 number
槽中输出 6(因为它可以被 1、2 和 3 整除)。但输出只是读取 1
。我在这里做错了什么?我附上了我的框图的图片,但我不确定如何在此处上传我的实际 VI,但如果需要并且有人知道如何上传,我也可以这样做。我是 LabView 的新手,所以感谢您的帮助。谢谢!
then my while loop continues on to the next input number M
目前情况并非如此。 "Number" 每次出现时都显示 1,因为没有代码可以将其更改为其他任何内容。我建议使用 increment function.
此外,在解决此类问题时,我喜欢为循环计数器制作一个指示器,以检查循环是否达到预期的 运行 次。
编辑:
试试这个片段。它会在每个循环中增加您的输入,并且还会更正 "Quotient & Remainder" 函数的输入(循环计数器是零索引的)。
编辑 2:
最后,我仍然不确定您的方法是否能为您提供所需的结果。为了找到需要注意的部分,我建议使用 Highlight Execution & probes(最简单的方法是右键单击电线并 select "probe")。
我正在尝试创建一个简单的 VI,用于查找所有数字 1-N 的倍数的最小数字。我要实现的方法是一个带有嵌套 for 循环的 while 循环。对于每个输入数字(我们称之为 M),嵌套的 for 循环遍历数字 1-N 并测试 M/1、M/2、...、M/N 的余数是否为零与否。如果余数为零(即我的数字 M 可以被这个数字整除),代码将数字 1
添加到 for 循环中的数组。如果它不可整除,则将 0
添加到数组中。
然后,在 for 循环之外,所有数组元素相乘。如果乘积是 0
(这意味着数字 1-N 中至少有一个不是 M 的因数),那么我的 while 循环会继续到下一个输入数字 M。但是如果乘积不为零, while 循环停止,指标应显示数字 M(这是数字 1-N 的倍数)。
我认为这是一个非常简单的想法,但由于某种原因我的代码无法正常工作。例如,我尝试输入 M=4(在 divisible by numbers up to
槽中指示),并期望在 number
槽中输出 6(因为它可以被 1、2 和 3 整除)。但输出只是读取 1
。我在这里做错了什么?我附上了我的框图的图片,但我不确定如何在此处上传我的实际 VI,但如果需要并且有人知道如何上传,我也可以这样做。我是 LabView 的新手,所以感谢您的帮助。谢谢!
then my while loop continues on to the next input number M
目前情况并非如此。 "Number" 每次出现时都显示 1,因为没有代码可以将其更改为其他任何内容。我建议使用 increment function.
此外,在解决此类问题时,我喜欢为循环计数器制作一个指示器,以检查循环是否达到预期的 运行 次。
编辑:
试试这个片段。它会在每个循环中增加您的输入,并且还会更正 "Quotient & Remainder" 函数的输入(循环计数器是零索引的)。
编辑 2:
最后,我仍然不确定您的方法是否能为您提供所需的结果。为了找到需要注意的部分,我建议使用 Highlight Execution & probes(最简单的方法是右键单击电线并 select "probe")。