INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Anfänger Frage



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

31.03.2010, 10:36
Beitrag #11

Ome Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 109
Registriert seit: Nov 2009

2011
2009
DE

12XXX
Deutschland
Anfänger Frage
' schrieb:einzig die Ende-Eingabe ist nicht Teil des Ergebnis-Arrays, was sich aber leicht ändern lässt

Stimmt, da war ich mit meiner Änderung zu schnell, anfangs war der Startwert nicht mit drin ^_^naja

Aber die antwort auf die Frage von dimitri84 würde mich auch interessieren

' schrieb:Bewirkt das Vorinitialisieren des Schieberegisters nicht wenigstens eine theoretische Erleichterung für den LV-Compiler? Und reicht ein Array der Länge Null für die korrekte Initialisierung oder muss es schon die richtige Länge haben um Nutzen zu haben?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
31.03.2010, 10:42
Beitrag #12

Daniel1982 Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Mar 2010

8.6
2010
de

53119
Deutschland
Anfänger Frage
Guten Tag
vielen vielen Dank für eure schnelle Antworten, ich glaub ich hab mein Problem nicht gut beschrieben, aber ich habs geschafft.
die 2 Lsg von Jens klappt auch wunderbar und ist einfacher hier poste ich mal was ich gerade gemacht habe aber wie gesagt die Lösung von Jens sieht ganz gut aus.
Lg Daniel


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.03.2010, 10:47
Beitrag #13

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Anfänger Frage
' schrieb:offtopic:

Bewirkt das Vorinitialisieren des Schieberegisters nicht wenigstens eine theoretische Erleichterung für den LV-Compiler? Und reicht ein Array der Länge Null für die korrekte Initialisierung oder muss es schon die richtige Länge haben um Nutzen zu haben?

Also in Matlab war es ein deutlicher Performanceunterschied, ob man jetzt das Array dynamisch hat wachsen lassen (-> langsam) oder ein mit Nullen vorinitialisiertes Array der passenden Größe mit Werten gefüllt hat (-> deutlich schneller).
Edit: Es kann natürlich gut sein, dass LV erkennt wodrauf der Code hinaus will und regelt alles in Eigenregie.
Hmm
Mal schauen, worauf du genau hinaus willst, ich gebe einmal eine allgemeine Antwort.
1. Wenn LabVIEW weiss, wie oft eine For-Schleife durchlaufen wird (und das ist ja bekannt), dann ist das Erstellen eines Arrays am Ausgang per Auto-Indexing die empfohlene Methode.
2. Bei deiner Lösung ist folgendes schlecht: Du schiebst ein leeres Array in das Shift-Register, und hängst dann immer per Build-Array ein neues Element hinzu. Build-Array bedeutet aber immer "Kopieren im Speicher", sprich, es wird Speicher für das neuere größere Array alloziert und dann das bestehende Array + neues Element kopiert, dann das alte Array freigegeben.
3. Performancemäßig identisch mit Methode 1 sollte sein:
- Array in der schon korrekten Größe vordefinieren (Initialize Array VI).
- Jetzt in der Schleife immer mit "Replace Array Subset" arbeiten.

Methode 3 kann also bei While-Schleifen von Vorteil sein. Oder wenn noch irgendeine Fallunterscheidung in der Schleife drin ist, und nicht in jedem Fall ein neues Element hinzugefügt wird. Dann alloziert man die max. Größe vor, arbeitet immer mit Replace ... und schneidet nach der Schleife das Array auf die gewünschte Größe ab (-> Funktion Array Subset).

Gruß, Jens

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.03.2010, 10:53
Beitrag #14

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Anfänger Frage
' schrieb:Guten Tag
vielen vielen Dank für eure schnelle Antworten, ich glaub ich hab mein Problem nicht gut beschrieben, aber ich habs geschafft.

Bezogen auf deinen Screenshot...

Dann aber gleich so:
   


Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.03.2010, 10:57 (Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2010 10:58 von dimitri84.)
Beitrag #15

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Anfänger Frage
' schrieb:Hmm
Mal schauen, worauf du genau hinaus willst, ich gebe einmal eine allgemeine Antwort.
1. Wenn LabVIEW weiss, wie oft eine For-Schleife durchlaufen wird (und das ist ja bekannt), dann ist das Erstellen eines Arrays am Ausgang per Auto-Indexing die empfohlene Methode.
2. Bei deiner Lösung ist folgendes schlecht: Du schiebst ein leeres Array in das Shift-Register, und hängst dann immer per Build-Array ein neues Element hinzu. Build-Array bedeutet aber immer "Kopieren im Speicher", sprich, es wird Speicher für das neuere größere Array alloziert und dann das bestehende Array + neues Element kopiert, dann das alte Array freigegeben.
3. Performancemäßig identisch mit Methode 1 sollte sein:
- Array in der schon korrekten Größe vordefinieren (Initialize Array VI).
- Jetzt in der Schleife immer mit "Replace Array Subset" arbeiten.

Methode 3 kann also bei While-Schleifen von Vorteil sein. Oder wenn noch irgendeine Fallunterscheidung in der Schleife drin ist, und nicht in jedem Fall ein neues Element hinzugefügt wird. Dann alloziert man die max. Größe vor, arbeitet immer mit Replace ... und schneidet nach der Schleife das Array auf die gewünschte Größe ab (-> Funktion Array Subset).

Gruß, Jens

Hat meine Frage komplett beantwortet! Sei bedankt.

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  NaN beim PID Autotuning --> bin Anfänger -matthias- 0 3.265 22.04.2013 15:08
Letzter Beitrag: -matthias-
  Bücher für Anfänger P.Berger 1 2.846 08.01.2013 13:46
Letzter Beitrag: GerdW
  [Anfänger] SubVi ausrichtung? prinz3nroll3 8 11.469 21.01.2012 11:47
Letzter Beitrag: Lucki
  Tabellenerstellung [Anfänger] hanschris 4 5.309 31.10.2011 20:04
Letzter Beitrag: hanschris
  Anfänger Array-Problem wanze 4 5.262 29.04.2011 12:29
Letzter Beitrag: wanze
  [Anfänger] Einfache Ampel Grinf4ce 3 11.025 16.12.2009 10:35
Letzter Beitrag: Y-P

Gehe zu: