Labview - 通过数组大小限制增加数组索引

Labview - Increasing Array Index with Array Size Limiting

我正在使用 labview XY 线图,它对 y 值使用随机数生成器,对 x 值使用 while 循环计数。达到阈值 x 值(比如 1000)后,我希望能够遍历过去的 1000 个值,并且仅每 10 个值显示一次(这具有消除情节混乱的效果)。理想情况下,实现这一点的方法可以针对更高的阈值进行扩展,以便绘图具有以下格式:

每 1,000 个值,步长为 10

每10,000个值,步长为100

每100,000个,步长为1,000

等等

下面是我一直在使用的代码,以及 VI 的图片。我的问题是,有没有更好的方法来实现这种效果,而不必像我目前正在做的那样(在 for 循环内)从数组中删除值?

代码

虚拟仪器

你指的是 "decimation"(我认为这里是字面意思,因为你将它分解为 10s)。 LabVIEW 中有一个用于抽取数组的函数,可以找到更多信息 here

这似乎是您尝试使用抽取 VI 进行的操作的简化版本

可以从信号操作面板中使用可配置的抽取 VI,它们可以使用抽取因子进行抽取,请参阅 here 或来自第 3 方包。 MGI 在他们的调色板上有一个称为 MGI Decimate Array with Offset。您可以将上面代码中的抽取函数替换为其中任何一个,并根据传入数组的大小更改抽取因子。

编辑:@JonathanVahala 在下面询问有关使用可配置抽取的问题。请参阅此图片,其中显示了执行此操作的方法:

你可以用这个替换 case 结构来减少这种方式。