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 结构来减少这种方式。
我正在使用 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 结构来减少这种方式。