如何填充和排列其行是组合和列的不同组?(labview)
How populate and array whose rows were combinations and columns the different groups?(labview)
我知道这个问题令人困惑,所以我会尝试解释我的问题。我在一个 labview 项目中工作,我必须做的一件事是,在询问用户变量的数量和每个变量的不同值的数量之后,创建一个包含所有 de 组合的数组。
假设我们有 3 个不同的变量,例如:
变量 1、变量 2、变量 3
并且每个值的不同值的数量是:
var1 -> 0, 1, 2
var2 -> 11, 22
var3 -> 55, 66, 77, 88
所以,结果数组应该是这样的:
0 11 55
0 11 66
0 11 77
0 22 55
0 22 66
...
这样直到 3 x 2 x 4 = 24 行
考虑到变量的数量和每个变量的值通常会不同,我该如何填充这个数组?
我需要如何使用 labview 来完成。
非常感谢。
最简单和示例的方法是在彼此内部使用 3 个 for 循环。
所以最小的for循环会迭代var3,
中等 for 循环将迭代 var2 和
large for 循环将迭代 var1。
共享 python 实现,如果您可以指定实现所用的语言,将会有所帮助。
def array_3d(var1,var2,var3):
a = []
for i in range(len(var1)):
for j in range(len(var2)):
for k in range(len(var3)):
a.append([var1[i],var2[j],var3[k]])
print a
array_3d([1,2,3],[10,20,30],[300,400,500,600])
您要找的词是"Cartesian Product"。
您可以使用 gmath/Discrete 数学。llb/Cartesian Lists.vi 的乘积来完成此操作:
这给出了预期的结果:
它的工作方式是向 Cartesian Product VI 提供一个一维数组,其中详细说明了要获取其笛卡尔积的多个数组的大小,它会生成相应的索引,您需要为各个数组建立索引以创建笛卡尔积。
您需要做的就是构建一个二维数组(一维行向量数组),其中包含您想要计算其笛卡尔积的所有信息,以及一个显示每个单独行向量大小的一维数组.在 LabVIEW 中,当您构建一维数组时,列数变为 max(len(row_vector_i)),因此要保留此长度信息以进行自动叉积,最好的方法是简单地构建一维数组集群,其中每个集群都有一个单独的一维数组或行向量。这会保留大小信息。
这是它的样子:
我把这些都存进了一个工程,应该是完全兼容LV8.6的,found here
我知道这个问题令人困惑,所以我会尝试解释我的问题。我在一个 labview 项目中工作,我必须做的一件事是,在询问用户变量的数量和每个变量的不同值的数量之后,创建一个包含所有 de 组合的数组。
假设我们有 3 个不同的变量,例如: 变量 1、变量 2、变量 3
并且每个值的不同值的数量是:
var1 -> 0, 1, 2
var2 -> 11, 22
var3 -> 55, 66, 77, 88
所以,结果数组应该是这样的:
0 11 55
0 11 66
0 11 77
0 22 55
0 22 66
...
这样直到 3 x 2 x 4 = 24 行
考虑到变量的数量和每个变量的值通常会不同,我该如何填充这个数组?
我需要如何使用 labview 来完成。 非常感谢。
最简单和示例的方法是在彼此内部使用 3 个 for 循环。
所以最小的for循环会迭代var3,
中等 for 循环将迭代 var2 和
large for 循环将迭代 var1。
共享 python 实现,如果您可以指定实现所用的语言,将会有所帮助。
def array_3d(var1,var2,var3):
a = []
for i in range(len(var1)):
for j in range(len(var2)):
for k in range(len(var3)):
a.append([var1[i],var2[j],var3[k]])
print a
array_3d([1,2,3],[10,20,30],[300,400,500,600])
您要找的词是"Cartesian Product"。
您可以使用 gmath/Discrete 数学。llb/Cartesian Lists.vi 的乘积来完成此操作:
这给出了预期的结果:
它的工作方式是向 Cartesian Product VI 提供一个一维数组,其中详细说明了要获取其笛卡尔积的多个数组的大小,它会生成相应的索引,您需要为各个数组建立索引以创建笛卡尔积。
您需要做的就是构建一个二维数组(一维行向量数组),其中包含您想要计算其笛卡尔积的所有信息,以及一个显示每个单独行向量大小的一维数组.在 LabVIEW 中,当您构建一维数组时,列数变为 max(len(row_vector_i)),因此要保留此长度信息以进行自动叉积,最好的方法是简单地构建一维数组集群,其中每个集群都有一个单独的一维数组或行向量。这会保留大小信息。
这是它的样子:
我把这些都存进了一个工程,应该是完全兼容LV8.6的,found here