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!
Hallo,
ich habe ein Problem mit Arrays.
Aus einer Messwertaufnahme erhalte ich ein Array mit 401 Feldern, in jedem Feld steht ein Messwert.
Aus einer Berechnung erhalte ich ein Array mit 9 Feldern, in jedem Feld steht eine Zahl zwischen 0 und 401. Diese sollen nachher die Indices des grossen Arrays sein.
Nun soll in einem dritten Array folgendes ausgegeben werden:
- die Werte des kleinen Array sind die Indices des grossen Arrays
- für jeden Index, der im kleinen Array steht, soll aus dem grossen Array der Messwert ausgegeben werden.
zB:
steht an erster Stelle des kleinen Arrays der Wert 50, bedeutet das, dass der 50. Wert des grossen Arrays ausgegeben werden soll.
Hallo Kvasir,
vielen Dank für deine Hilfe.
Leider funktioniert die Sache bei mir nícht so.
Das liegt wohl daran, dass die Arrays mit Hilfe von Schieberegistern erstellt werden. Bei der ersten Ausführen erhalte ich ein Array mit Achtmal den Wert Null, führe ich das Programm ein zweites Mal aus, werden 16 Mal Werte in das Array reingeschrieben, die aber nicht mit dem grossen Array übereinstimmen. irgendwie stimmt die Synchronisation nicht.
Grüße
Stefan
mal abgesehen davon, dass das tatsächlich unnötig ist (und damit auch Quatsch!): Das ist ja nur ein Beispiel, im realen Programm ist das ja kein statisches Array, sonder je nach Programmzustand werden da vermutlich unterschiedlich große Arrays "angeliefert" (z.b. aus nem übergeordneten VI)!
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Die Anzahl der Durchgänge der for - Schleifen ergeben sich ja dadurch, wieviel Messwerte aufgenommen wurden und welche bzw wieviele Messwerte ausgegeben werden sollen.
Wenn jemand einen Vorschlag hat, wie ich anderweitig ein Array erstellen kann, wäre ich dafür sehr dankbar.
Grüße
Stefan
@tobey: Genau das ist der Vorteil der For Shleife bei Arrays. Du musst die Anzahl nicht angeben und kannst alle Einträge bearbeiten, auch wenn dir die Länge des Arrays gar nicht bekannt ist.
@sneube: Dein Problem ist, dass dein großer Array ein mehrdimensionaler Array ist. Was genau soll denn die For Schleife erwirken, in der du deinen großen Array erzeugst. So wie du sie nun hast erzeugt sie einen N- dimensionalen Array.
A few weeks of developement and testing can save a WHOLE afternoon in the library!
14.06.2006, 14:53 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2006 14:55 von Achim.)
das Problem ist hier: Du erzeugst ein 2D-Array (doppelte Linie), und das wird dann aufgespalten, außerdem läuft die hintere FOR-Schleife sooft, wie das 1D-Array Elemente hat (bei zwei angeschlossenen Arrays wird nämlich immer die kleinere Anzahl Elemente bearbeitet - so als ob du am "N" eine Zahl angibst, die kleiner ist wie die Anzahl der Element im Array).
Außerdem musst du zum zusammenfügen der Array keine separate Schleife verwenden, du musst das "Array erstellen" nur umschalten auf "Arrays verketten" (Concatenate Array).
Hier mal ein Bild:
Gruss
Achim
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Hallo Kvasir,
das große Array sind Leistungspegel aus einem Spektrumanalysator.
Der Spektrumanalysator liefert mir in einem Frequenzbereich, den ich vorher angeben kann, ein Array mit 401 Feldern, bei dem jedes Feld ein Leistungspegel ist.
Die Leistungspegel werden vom Spektrumanalysator in einem Cluster ausgegeben. Ich kann auf die Werte aus dem Cluster nur zugreifen, wenn ich die Werte mit der for - Schleife in das Array schreibe.
Grüße
stefan
14.06.2006, 14:55 (Dieser Beitrag wurde zuletzt bearbeitet: 14.06.2006 15:04 von tobey.)
Das ist mir schon klar, aber ich kann mir ja die Länge des Array ohne Probleme berechnen lassen, und somit muss mir die Länge des Arrays davor auch nicht bekannt sein! Und ich bleibe so mit auch dynamisch!!!
(also keine direkter Quatsch!, sondern eher doppelt gemoppelt *g*)
Und ich wollt ja nur wissen ob das nicht gegen irgendwelchen Style-Guides verstößt...
So hab jetzt etwas rumgestöbert und herausgefunden, dass das so voll und ganz legitim ist und meine Variante nur übertriebene Sicherheit wäre
' schrieb:@tobey: Genau das ist der Vorteil der For Shleife bei Arrays. Du musst die Anzahl nicht angeben und kannst alle Einträge bearbeiten, auch wenn dir die Länge des Arrays gar nicht bekannt ist.
@sneube: Dein Problem ist, dass dein großer Array ein mehrdimensionaler Array ist. Was genau soll denn die For Schleife erwirken, in der du deinen großen Array erzeugst. So wie du sie nun hast erzeugt sie einen N- dimensionalen Array.