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 

Arrays - Selektieren - Mittlewerte



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!

12.05.2007, 11:00
Beitrag #1

Excalibour Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 52
Registriert seit: Apr 2007

7.1
2007
kA


Deutschland
Arrays - Selektieren - Mittlewerte
Ich bin mir nicht sicher, ob es zu Datenbanken gehört, aber ein Array ist ja eigentlich nichts anders als eine Art Datenbank, oder?

Jedenfalls habe ich 160 2D-Arrays, die in den "Spalten" meine Messdaten beinhalten. Jetzt möchte ich diese in bestimmten Zellen nach kritischen Werten durchsuchen, um sie anschließend zu gruppieren bzw. den Mittelwerte von Messdaten zu bilden. Ich habe jedoch nur die Funktion gesehen, dass 1D-Arrays durchsucht werden können. Ist das denn bei höherwertigen Arrays nicht mehr möglich? Mit Excel würde es so einfach gehen, jedoch langen mir die Möglichkeiten nicht aus.
Hat jemand eine Idee oder ist die Datenim Array vorliegen zu haben einfach die falsche Lösung?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.05.2007, 13:10
Beitrag #2

canix Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 87
Registriert seit: Mar 2007

Labview8.2 / Studnik-Version 8.0.1
2007
kA

44807
Deutschland
Arrays - Selektieren - Mittlewerte
' schrieb:Ich bin mir nicht sicher, ob es zu Datenbanken gehört, aber ein Array ist ja eigentlich nichts anders als eine Art Datenbank, oder?

Jedenfalls habe ich 160 2D-Arrays, die in den "Spalten" meine Messdaten beinhalten. Jetzt möchte ich diese in bestimmten Zellen nach kritischen Werten durchsuchen, um sie anschließend zu gruppieren bzw. den Mittelwerte von Messdaten zu bilden. Ich habe jedoch nur die Funktion gesehen, dass 1D-Arrays durchsucht werden können. Ist das denn bei höherwertigen Arrays nicht mehr möglich? Mit Excel würde es so einfach gehen, jedoch langen mir die Möglichkeiten nicht aus.
Hat jemand eine Idee oder ist die Datenim Array vorliegen zu haben einfach die falsche Lösung?

Hast Du 160 verschiedene 2D Arrays?
Wie kommen diese zustande?
Schreibst Du die Arrays zwischendurch auch in einen File?

Kannst Du mal einen Screenshot oder ein VI posten?

Ich könnte mir vorstellen, daß man vielleicht die 2D Arrays in 1D Arrays umwandelt, die Suchfunktionen benutzt und die gewonnenen Informationen auf das ursprüngliche 2D Array anwendet oder alles händisch, also mit entsprechenden for-Schleifen macht. Aber mir fehlen irgendwie noch ein paar Hintergrund-Infos.

Gruß
Jens

Hinweis: Meine Lösungsvorschläge sind immer mit Vorsicht zu geniessen! Es gibt vermutlich wesentlich elegantere Ansätze. Ich poste dennoch, da ich mir auf diese Weise das entsprechende Feedback erhoffe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.05.2007, 13:52
Beitrag #3

Excalibour Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 52
Registriert seit: Apr 2007

7.1
2007
kA


Deutschland
Arrays - Selektieren - Mittlewerte
Ich habe ein txt-file bekommen, und zerteile es jeweils nach 7200Zeilen. Dies Unterteilung ist nicht notwendig, jedoch sorgt es für Übersicht, da an dieser Stelle immer ein neues "Datenpaket" beginnt. Also prinzipiell kann das auch als eine Datei bleiben oder anderweitig ausgelesen werden.
Ich habe mir gedacht, die Daten paketweise zu speichen, aber das klappt noch nicht so ganz (siehe VI), aber da komme ich noch dahinter, wie ich das richtig hinbekomme.

Letztendlich ist das Ziel, die Messdaten in zwei Kategorien zu gruppieren (per Grenzwertüberschreitung in einzelnen Zellen) und anschließend die Daten paketweise zu mitteln, so dass Störeinflüsse reduziert und die Verlaufskurven geglättet werden.

Angehängt ist ein Ausschnitt meiner Messdaten (1. Zyklus) und das Programm. Hierbei weiß ich, dass die Schleife noch nicht nach der Anzahl aller Pakete beendet wird; aber das Programm ist auch noch nicht fertig...Smile
Danke für alle Hilfen!


Angehängte Datei(en)
Sonstige .txt  1.Zyklus.txt (Größe: 561,06 KB / Downloads: 228)

Sonstige .vi  versuch_mit_schleife.vi (Größe: 317,62 KB / Downloads: 203)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.05.2007, 14:23
Beitrag #4

canix Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 87
Registriert seit: Mar 2007

Labview8.2 / Studnik-Version 8.0.1
2007
kA

44807
Deutschland
Arrays - Selektieren - Mittlewerte
' schrieb:Ich habe ein txt-file bekommen, und zerteile es jeweils nach 7200Zeilen. Dies Unterteilung ist nicht notwendig, jedoch sorgt es für Übersicht, da an dieser Stelle immer ein neues "Datenpaket" beginnt. Also prinzipiell kann das auch als eine Datei bleiben oder anderweitig ausgelesen werden.
Ich habe mir gedacht, die Daten paketweise zu speichen, aber das klappt noch nicht so ganz (siehe VI), aber da komme ich noch dahinter, wie ich das richtig hinbekomme.

Letztendlich ist das Ziel, die Messdaten in zwei Kategorien zu gruppieren (per Grenzwertüberschreitung in einzelnen Zellen) und anschließend die Daten paketweise zu mitteln, so dass Störeinflüsse reduziert und die Verlaufskurven geglättet werden.

Angehängt ist ein Ausschnitt meiner Messdaten (1. Zyklus) und das Programm. Hierbei weiß ich, dass die Schleife noch nicht nach der Anzahl aller Pakete beendet wird; aber das Programm ist auch noch nicht fertig...Smile
Danke für alle Hilfen!

Wenn ich das richtig deute, mißt Du 9 verschiedene Kanäle, wertest aber nur 5 aus, korrekt?
Welche Kanäle werden auf Grenzüberschreitung untersucht?
Soll nun für die Dauer einer Grenzüberschreitung der Mittelwert gebildet werden? Oder welche Abschnitte sollen gemittelt werden?

Wenn Du Dir den Screenshot anschaust, siehst Du, daß ich das Array einmal "gekippt" habe. Anschliessend läuft es durch eine For-Schleife, in der für jeden Kanal über die gesamte Zykluszeit gemittelt wird.
   

Hinweis: Meine Lösungsvorschläge sind immer mit Vorsicht zu geniessen! Es gibt vermutlich wesentlich elegantere Ansätze. Ich poste dennoch, da ich mir auf diese Weise das entsprechende Feedback erhoffe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.05.2007, 15:29
Beitrag #5

Excalibour Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 52
Registriert seit: Apr 2007

7.1
2007
kA


Deutschland
Arrays - Selektieren - Mittlewerte
' schrieb:Wenn ich das richtig deute, mißt Du 9 verschiedene Kanäle, wertest aber nur 5 aus, korrekt?
Das ist richtig.

' schrieb:Welche Kanäle werden auf Grenzüberschreitung untersucht?
der Letzte, neunte Kanal.

' schrieb:Soll nun für die Dauer einer Grenzüberschreitung der Mittelwert gebildet werden? Oder welche Abschnitte sollen gemittelt werden?

Wenn Du Dir den Screenshot anschaust, siehst Du, daß ich das Array einmal "gekippt" habe. Anschliessend läuft es durch eine For-Schleife, in der für jeden Kanal über die gesamte Zykluszeit gemittelt wird.
[attachment=33193:Mittelwerte_bilden.JPG]

Nein, es sollen keine Abschnitte gemittelt werden. Es ist wie folgt:

Im txt file lag nur ein Zyklus vor. Ich habe hiervon aber 160. Ich mag nicht den Mittelweit eines Zyklus', sondern die Werte für 0,0; 0,1; 0,2 etc aus allen Zyklen separat gemittelt, sodass wieder eine Kurve entsteht, die jedoch keine Spitzen (die vielleicht durch Messungenauigkeit entstanden) mehr aufweist. Anbei ein exemplarisches Excel-Beispiel: Ich habe links drei Zyklen angelegt, auf der rechten Seite entstehen mittels einfacherer Excelfunktion die Mittelwerte, was dann ebenfalls als Graph ausgegeben werden kann.
Nochmal, damit wir uns nicht missverstehen: Was Du gemacht hast, war der Mittelwert über alle Werte EINES Zyklus'. Was ich machen möchte ist, dass zu jedem Zentelgrad (0,0; 0,1; 0,2...) die gemessenen Mittelwerte aus einigen der 160 Zyklen genommen werden; das Auswahlverfahren soll mittels einem gesetzten Grenzwert realisiert werden, das in bestimmten Zellen (nämlich denen des neunten Kanals.) nach Erfüllung dieser Bedingung sucht und gegebenenfalls feuert. Hierbei soll dann der gesamte Zyklus verwendet oder verworfen werden.
Hoffe es ist nicht zu konfus und verwirrend... Unsure


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.05.2007, 16:44 (Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2007 16:48 von canix.)
Beitrag #6

canix Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 87
Registriert seit: Mar 2007

Labview8.2 / Studnik-Version 8.0.1
2007
kA

44807
Deutschland
Arrays - Selektieren - Mittlewerte
Habe verstanden. Jeder Zyklus umfaßt exakt 7200 Werte?
Momentan hast Du alle Zyklen in einem File, also 160*7200 Werte?

Hinweis: Meine Lösungsvorschläge sind immer mit Vorsicht zu geniessen! Es gibt vermutlich wesentlich elegantere Ansätze. Ich poste dennoch, da ich mir auf diese Weise das entsprechende Feedback erhoffe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.05.2007, 17:00 (Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2007 17:05 von jg.)
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Arrays - Selektieren - Mittlewerte
Hallo,

so ganz blicke ich bei deiner Fragestellung noch nicht durch.

Erst mal, was ich verstehe:

Du hast sozusagen 160 Messreihen (wir beachten jetzt mal nicht, ob die in einem File vorliegen oder nicht).
In jeder dieser Messreihen hast du 9 Spalten a 7200 Werte.

Soweit ich bisher verstehe, ist die 1. Spalte in deiner Graphdarstellung die x-Achse. Für mich folgt daraus, dass diese x-Werte in allen deinen Messreihen konstant ist. Korrekt?

Jetzt sprichst du davon, dass du gewisse Messreihen verwerfen willst, und zwar auf Grund von Werten in der 9.Spalte.
Hier müsstest du mal konkreter werden: Was sind die Bedingungen zum Verwerfen? Wird dann die gesamte Messreihe verworfen? Oder nur der Messwert zu diesem x-Wert?

Die Mittelwertbildung soll dann ja wohl erst erfolgen, wenn du entschieden hast, was verwertet werden soll, deshalb erhälst du hier erst einmal keine Antwort.

MfG, 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
12.05.2007, 18:35 (Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2007 18:48 von canix.)
Beitrag #8

canix Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 87
Registriert seit: Mar 2007

Labview8.2 / Studnik-Version 8.0.1
2007
kA

44807
Deutschland
Arrays - Selektieren - Mittlewerte
Also ich verstehe das folgendermassen:

Es gibt einen Logfile, der umfaßt 160 Zyklen a 7200 Messungen auf 9 Kanälen.

Falls Kanal 9 einen Grenzwert überschreitet (z.B. >7,9), wird die komplette Messung nicht brücksichtigt. Also meinetwegen ist Kanal 9 bei Messung 300 im ersten Zyklus >7,9 so wird Messung 300 des entsprechenden Zyklus nicht in die Mittelwertbildung miteinbezogen. Mittelwerte werden über die 160 Zyklen nur für die entsprechende Temperatur gebildet. Also meintewegen Zyklus X Messung 456 nur mit Zyklus Y Messung 456.. und entsprechen Kanal 5 nur mit Kanal 5.
Korrekt?

Mein Vorschlag wäre folgendes VI

Sonstige .vi  versuch_mit_schleife_2_.vi (Größe: 210,24 KB / Downloads: 218)


Wenn nicht dann nicht;-)

Gruß
Jens

Hinweis: Meine Lösungsvorschläge sind immer mit Vorsicht zu geniessen! Es gibt vermutlich wesentlich elegantere Ansätze. Ich poste dennoch, da ich mir auf diese Weise das entsprechende Feedback erhoffe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.05.2007, 12:52
Beitrag #9

Excalibour Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 52
Registriert seit: Apr 2007

7.1
2007
kA


Deutschland
Arrays - Selektieren - Mittlewerte
Also, Danke erstmal für Eure große Bereitschaft, mir zu helfen, ich hoffe, ich kann alle gestellten Fragen auf einmal beantworten:

@canix (17:44 Uhr):
Ja, jeder Zyklus umfasst 7200 Messwerte, diese befanden sich ursprünglich in einem File.
Da es aber 9 Kanäle sind (vgl. txt-file), von denen ich jedoch nur 5Kanäle zur Auswertung brauche, handelt es sich insgesamt um 5Kanäle x 80Zyklen x 7200 Messwerte

@Jens G
Du hast mich soweit richtig verstanden: Die erste Spalte entspricht den x-Werten und ist in jedem Zyklus (bei Dir: Messreihe) gleich.
Verworfen werden sollen bei Überschreitung eines Wertes in der neunten Spalte der gesamte Messzyklus/Messreihe (also alle 7200Zeilen). Der Schwellwert ist noch unbekannt und muss von mir ermittelt werden. Ich würde zum Testen mal 8.0 setzen.

@canix (19:35Uhr):
Nee, wie an Jens G geschrieben (3Zeilen weiter oben, oder so), solle die ganze Messreihe verworfen werden, wenn mindestens einer der Werte des Kanals 9 der Messreihe den Wert 8.0 überschreitet. Was richtig ist, ist, dass z.B. Zyklus 1, Zeile 345, Kanal 5 mit Zyklus 2, Zeile 345, Kanal 5 etc. gemittelt wird, falls eben die Werte der Bedingung standgehalten haben. Gern würde ich mir Dein Programm anschauen, leider kann ich es nicht öffnen. Liegt vielleicht daran, dass Du eine neuere Version als 7.1 verwendest?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.05.2007, 15:14
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Arrays - Selektieren - Mittlewerte
Hallo,

ich will dir ja hier nicht auf einmal dein ganzes VI schreiben, hier also erst einmal ein Vorschlag für deine Suchfunktion, ob du eine Messreihe verwerfen willst oder nicht:
   

MfG, 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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Aus einer Textdatei (Liste) Einträge selektieren florianBO 2 3.660 04.05.2007 11:26
Letzter Beitrag: cb

Gehe zu: