首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Labview中展平(重塑为一维)任意维数的数组

如何在Labview中展平(重塑为一维)任意维数的数组
EN

Stack Overflow用户
提问于 2012-01-13 19:02:48
回答 2查看 10.4K关注 0票数 6

设A是一个任意维数的数组(在我的例子中是2或3)。我如何在事先不知道维数的情况下展平(重塑到1D)这个数组?

如果我知道维数,我可以很容易地获得元素的总数(通过使用"Array Size“函数的组合),然后使用这个数字将A重塑为1D。不幸的是,"Array Size“函数本身返回一个元素数等于维数的数组,这将我们带回到最初的问题。

我已经通过创建一个函数(VI)来“解决”这个问题,该函数返回3D数组(我期望处理的最常见的数组类型)的元素总数,这样我就可以将其作为参数提供给重塑函数。问题:它不接受二维数组,即使算法可以处理这样的数组!(在Labview中,数组控件似乎对它们接受的维数有严格的要求,例如在Matlab中就不是这样)。

一个很好的解决方案是将"Array Size“给出的数组中的所有元素相乘,以快速获得元素的总数,而不必将其包装在sub VI中。它应该是非常标准的..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-13 20:57:37

我相信这就是你要找的:

http://zone.ni.com/reference/en-XX/help/371361E-01/glang/reshape_array/

你会这样做:

N-维度输入数组--> ArraySize --> 1D_SizesOUT

这将返回一个包含所有数组维度大小的一维数组。

然后你去:

1D_SizeOUT --> MultiplyArrayElements --> NumberOfElementsIn_n-DimInputArray

该值作为ReshapeArray - done的尺寸大小。

http://zone.ni.com/reference/en-XX/help/371361E-01/glang/array_size/

http://zone.ni.com/reference/en-XX/help/371361E-01/glang/multiply_array_elements/

下面是上述代码的一个片段:

票数 12
EN

Stack Overflow用户

发布于 2012-01-13 20:59:17

只要得到数组大小的数组大小,就可以得到维数...

要将其放入subvi,请将您的未知数组转换为一个变量,并给出此变量和subvi的维数。在subvi中,使用您的维数组"Variant to Data“。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8849567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档