【问题标题】:how do you flatten and unflatten an array of doubles in labview?你如何在labview中展平和展平一系列双打?
【发布时间】:2013-06-12 16:20:21
【问题描述】:

我创建了一个简单的 LabView 程序,如下所示,它尝试将数组 [1,0,3] 展平,然后将其展平并打印出内容。

但是,我没有成功。我做错了什么?

【问题讨论】:

    标签: labview


    【解决方案1】:

    我做错了什么?

    您没有阅读教程,或者您没有阅读 unflatten 函数 (Ctrl+H) 的上下文帮助,或者您没有阅读该函数的完整帮助(右键单击>>Help),或者您不要查看示例(来自帮助或帮助>>查找示例)。任你选(最好是全部四个)。

    如果您想要一个实际的答案,那就是 LV 是严格类型的,因此您需要告诉 unflatten 函数您希望它输出哪种数据类型(1D DBL 数组),而您并没有这样做,而是真正的答案就是上一段中的内容 - 您应该使用这些工具来学习如何自己找到这样的答案。

    【讨论】:

    • 我查看了帮助 (CTRL-H),但它们没有告诉您可能的“类型”值是什么。我应该猜到这个吗?有没有都写的地方?例如,您是如何找到“一维 DBL 数组”的?另外,我在帮助>>查找示例中查找了示例,但我看到的只是展平和取消展平不是数组的数据结构,这没有帮助。我将尝试将“1D DBL 数组”作为“类型”输入传递给 unflatten 函数,如果它有效则重新发布。但是,如果您也可以向我指出所有可能类型的列表,那就太好了。
    • 也许你不明白 flattening 和 unflattening 是什么意思(我希望帮助解释一下)。扁平化意味着获取一段数据(使用 LV 用于表示数据的任何规则在内存中表示,可以在文档中找到)并将其转换为连续的字节流,表示为字符串。取消扁平化只是意味着获取扁平化的字符串并将其转换回原始数据形式。在这种情况下,您展开了 DBL[],所以这就是您要展开的内容。虽然有一些技巧,但大多数其他类型只会抛出错误。
    • 根据您的建议,我将字符串“1D DBL array”连接到上图中显示的“Unflatten from String”函数的类型输入中,但这不起作用。
    • 我将实际的 DBL 数组本身连接到类型输入并且它起作用了。
    • 另外,假设这是你 - forums.ni.com/t5/LabVIEW/… - 不要交叉发布。它往往只是浪费人们的时间,因为有多个人试图回答这个问题。对于这些问题,我建议您坚持使用 NI 论坛,因为它们更适合此问题。
    【解决方案2】:

    Flatten 到 String 返回的字符串只包含数据,而不是传入的数据类型的描述,所以为了再次 unflatten 需要从 String 中告诉 Unflatten 它是什么类型。您可以通过将一些适当类型的数据(任何数据 - 如果它是一个数组,它可以是一个空的)连接到 Type 终端来做到这一点。

    我不认为这从 LabVIEW 2012 帮助中可以立即看出,但我认为如果您点击 Unflatten from String 帮助页面中的链接到其中一个示例,就很清楚了。 Read Flattened Data.vi 示例有一个连接到 Type 输入的数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 2010-10-02
      • 2017-06-09
      • 1970-01-01
      相关资源
      最近更新 更多