Dear Sir or Madam,
the question I have is simple but important (and I guess it's not only important for me).
As you know Labview becomes very slow if it has to handle large arrays or large strings.
A workaround NI suggested [1] works fine on initializing a large string, but also becomes slow if you want to alter portions of that already built large string.
The soulution I am looking for is the following: Take a reference to an existing array, and overwrite the element/subarray which are to be altered directly in the RAM at their original locations with the new values - without making a temporary work copy of the entire array, and without outputting a copy of the new array. The nex
t time the user is going to read this array via a local variable, he will see the new array, which in fact is "just" the physically original array with the altered element/subarray.
This way the replacement process should be very fast and - equally important - independent of the size of the array, so that replacing just one element of a 1000 x 1000 array is exactly as fast as updating an element in a 10 x 10 array.
[2] gives you an idea of what I mean and how it could work, but for some reason the given example there ("replace.zip") works also very slow on very large arrays.
Is there a way to address array elements in a given array directly within Labview? Or do you have a CIN compiled to a Labview VI which can do this?
Thank you very much in advance for your help!
With kind regards,
Martin Sindermann
Software Development Engineer
Aachen Institute of Technology
___
Sources:
[1] http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/ad91d8fe13c350
5286256c010056f2e0?OpenDocument
[2] http://sine.ni.com/apps/we/niepd_web_display.DISPLAY_EPD4?p_guid=B123AE0CBA76111EE034080020E74861&p_node=DZ52026&p_submitted=N&p_rank=&p_answer=&p_source=External