LABVIEW中怎么给数组特定位置元素直接赋值

比如有一个3*3的全局数组变量,我现在想把整数5赋给(1,1)而其他的值不变,只能用数组元素替换么?如果是替换的话,把输出的结果赋给这个全局变量的时候操作太繁琐了,而当数组很大的时候比如1000*1000,速度就会很慢

LabVIEW中并没有明确的赋值的概念,和传统的文本编程语言的思路不一样,是数据流驱动的编程,在一般的文本编程语言里,定义二维数组变量的时候只是开辟了一块内存空间,里面是空的,所以要有赋值的过程,而LabVIEW中内存不需要手动分配,其后台有自动管理内存的机制,出现新的二维数组的时候,不需要变量定义,直接分配内存空间,然后就把数据存进去了。

如果硬要说有什么“赋值”的话,LabVIEW中有几种常见的类似于“赋值”的操作: 

1.在二维数组控件的前面板里直接填入数值

这个最简单,不用多说想必你也明白,手动填数。 

2.创建单一元素的数组

需要用到初始化数组,见下图

如果要创建一个3列5行的全是0的元素的二维数组,方法如下图

3.修改数组中中的某一个或某一部分元素

鉴于LabVIEW有自动分配内存的管理机制,如果你取出数组子集,插入新的数组子集,每次操作都会将需要操作的数组在内存里复制一份,对于大数组而言非常的耗费内存。

labVIEW为了解决这种问题,有个元素同址操作的结构,见下图

在结构的边框上右键单击在菜单中可以添加对应的模块,如下图

添加的时候都是成对添加,用这种结构可以避免只更改数组内部分元素的时候内存里复制数组的现象。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-22
速度慢是因为使用了全局变量,建议尽量不要使用全局变量,如果必须要用,可以用functional global(功能全局变量), 另外在使用数组元素替换时,可以使用缓存重用结构(LV8.5或以后版本),这样可以减少内存的使用以及数据复制的时间。
第2个回答  2011-06-24
速度慢是因为你使用了全局变量,建议尽量不要使用全局变量,如果必须要用,可以用functional global(功能全局变量), 另外在使用数组元素替换时,可以使用缓存重用结构(LV8.5或以后版本),这样可以减少内存的使用以及数据复制的时间本回答被网友采纳
第3个回答  2011-06-24

一、替换数组子集 (需要内存)

二、编程》结构》元素同址操作结构》添加数组替换子集(相同内存操作)

追问

谢谢了~我找到了,可是速度还是不够快~1500*1500个点需要大概18秒的时间才能完成,而实际上我只替换了360个点

追答

如果你有用到FOR循环,请配置并行循环,如果没用FOR循环,那么也就是说LV对于你的这个要求,只能是这样的上限了。

追问

怎么配置并行循环啊~能详细一点么~麻烦了

追答

FOR的并行循环是2009版本以后的功能,如果你用的是8。6的,那没这功能。
在FOR循环上点击鼠标右键,在弹出的菜单中选择“配置循环并行……”,然后在FOR循环并行迭代窗口中,勾选启用循环迭代并行,参数通常默认即可。可以参考帮助

第4个回答  2011-06-24
如图