LabVIEW: 如何从一个数组复制到另一个数组?

LabVIEW: How to copy from one array to another array?

我想将一个数组深复制到另一个数组。最好的方法是什么?

我试过这种方法,似乎可行。我要深拷贝。

谢谢

也许您已经习惯了一种不同的语言,在这种语言中一切都是通过引用完成的,但是您不需要在 LabVIEW 中执行任何这些操作。 LabVIEW 自动 在必要时在线路上复制数据,但在不需要时不复制。

您的代码所做的唯一一件事就是创建一个具有额外维度的数组,因为在您的循环中,您将每个标量值构建为具有一个元素的一维数组,然后将该数组传递给 indexing array terminal 它构建了一个连接到它的数据数组 - 因为你传递的是一维数组,所以你会得到一个二维数组。但是,如果那是您真正想要的,您可以获得完全相同的结果,方法是将原始数组连接到 Build Array 函数,然后将其从 1 x n 重塑为 n x 1 使用 Reshape Array:

如果您担心内存分配问题,您不必担心,除非您的代码实际上 运行 内存不足或 运行 太慢,您可以通过选择 Tools > Profile > Show Buffer Allocations 来查看 LabVIEW 将在何处进行复制和不进行复制。这会在您 select 的一种数据类型的任何终端上添加一个小黑点,必须在其中分配新的内存缓冲区。如果您对上面的代码执行此操作,您会发现从低维数据构建数组需要一个新缓冲区,但重塑数组则不需要。

如果您遇到非常特殊的情况,需要强制 LabVIEW 不分配缓冲区,您可以使用 In Place Element Structure。但对于绝大多数编程,您无需考虑这些:只需让 LabVIEW 为您处理即可。

在此期间,我建议您阅读 tutorial on loops