16.06.2010, 10:21
(Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2010 10:23 von jg.)
Beitrag #1
|
godi
LVF-Neueinsteiger
Beiträge: 7
Registriert seit: Mar 2010
9.0
-
de
76648
Deutschland
|
2D Array mit Werten füllen
Erst Mal ein herzliches Hallo an alle
Das Forum ist sehr hilfreich und ich habe schon viele tolle Ideen und Vorschläge in meinem Programm einbinden können. Doch trotz der Suchfunktion kann ich zu meinem jetztigen Problem irgendwie nichts vernüftiges finden und so habe ich mich entschlossen ein Thread zu erstellen.
Das Picoscope (Oszi) liefert mir Daten und diese sollen von Programm zuerst in ein Array gefüllt und am Ende in tabellenform abgespeichert werden. Das Array ist von Anfang an schon bekannt. Es ist zB. 5000 x 10000 groß. Ich habe das ganze bis jetzt so realisiert.
Dies funktioniert zwar aber das Array wird sehr langsam aufgebaut. Wenn ich das Array verkleinere auf 500 x 1000, dann geht das ganze relativ schnell. Man muss bedenken, dass das Picoscope nicht 2D Array auf ein Mal liefert, sondern nach und nach 1D Array mit der Länge der "Number of Samples" ( in dem Fall mit der Länge 10000)
Nun die Frage, kann man das ganze eleganter und besser lösen und wenn ja wie ?
|
|
|
16.06.2010, 10:25
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
2D Array mit Werten füllen
Bitte LVF-Regeln lesen und beachten.
Screenshots hier im Forum hochladen und nicht bei externen Image-Hostern...
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
16.06.2010, 11:47
Beitrag #3
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
2D Array mit Werten füllen
Hallo godi,
da sich kein anderer erbarmt, rate ich mal ins Blaue hinein:
Ich habe bei den "freihängenden" FeedbackNodes (FN) immer noch leichte Verständnisprobleme, was die Initialisierung angeht...
Kann es sein, dass deine FN bei jedem Aufruf aufs Neue initialisiert wird, wofür Speicher und Zeit benötigt wird?
Könntest du das komplette VI anhängen (evtl. DAQ-Aufruf durch dummy-FOR-loop ersetzen)?
|
|
|
16.06.2010, 12:10
Beitrag #4
|
|
|
16.06.2010, 12:24
Beitrag #5
|
GerdW
______________
Beiträge: 17.480
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
2D Array mit Werten füllen
@Dimitri,
"Wäre das nicht ein völlig unsinniges Verhalten?"
Eben.
Im Bild oben sehe ich: bei jedem Aufruf wird ein Array initialisiert (400MB!, falls DBL verwendet wird). Mit diesem Array wird die FN initialisiert, augenscheinlich auch bei jedem Aufruf ("...leichte Verständnisprobleme..."). Beide Aktionen halte ich für unsinnig...
|
|
|
16.06.2010, 12:31
(Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2010 12:32 von dimitri84.)
Beitrag #6
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
2D Array mit Werten füllen
' schrieb:Im Bild oben sehe ich: bei jedem Aufruf wird ein Array initialisiert (400MB!, falls DBL verwendet wird).
Achsooo, ja ein Array wird jedes Mal initialisiert.
Zitat:Mit diesem Array wird die FN initialisiert, augenscheinlich auch bei jedem Aufruf ("...leichte Verständnisprobleme..."). Beide Aktionen halte ich für unsinnig...
Dass die FN jedes Mal neu initialisiert wird, was auch immer dabei geschieht - ich hab davon keine Ahnung, glaube ich nicht. Da wird es wohl einen internen First-Run-Flag geben.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
|
|
|
16.06.2010, 12:32
(Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2010 12:44 von Lucki.)
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
2D Array mit Werten füllen
Bei so großen Datenmengen und wenn die Daten von einem Oszilloskop mit vielleicht nur 8 bit kommen. lohnt es sich auch mal über andere Datenformate als DBL nachzudenken. Das Mindeste wäre die Umstellung auf SGL.
Zur Initialisierung: Der Initialisierungsanschluß wird, wenn er sich in einer Schleife befindet, genau so nur einmal initialisiert, als wenn er sich bei einem Schieberegister außerhalb der Schleife befinden würde. Allgemein muß man sich den Initialisierungsanschluß so vorstellen, daß er nur dann aktiv ist, wenn ein unmittelbar daneben platziertes VI "erster Aufruf" den Ausgangswert true liefern würde. Diese Test könnte man ja leicht machen - wenn es ein VI gäbe.
|
|
|
16.06.2010, 12:50
Beitrag #8
|
|
|
16.06.2010, 12:53
(Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2010 13:57 von jg.)
Beitrag #9
|
|
|
16.06.2010, 12:53
(Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2010 07:36 von dimitri84.)
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
2D Array mit Werten füllen
' schrieb:..., wenn ein unmittelbar daneben platziertes VI "erster Aufruf" den Ausgangswert true liefern würde.
[*Korinthenkacker on*]
Da wäre ich mir nicht so sicher. Das VI "erster Aufruf" gibt wirklich nur einmal ein True pro "Applikationsstart mit dem Pfeil" aus - auch, wenn sich dieses VI z.B. in einem subVI befindet und das BD immer wieder aufgerufen wird. Eine FN oder ein SR kann in einem subVI öfter als nur einmal initialiesiert werden, nämlich bei jedem subVI-Aufruf.
[/*Korinthenkacker off*]
Mir gefällt dieses kleine runde Ding einfach nicht ...
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
|
|
|
| |