LabVIEWForum.de - Einlesen von Excel-Listen und dynamische Weiterverarbeitung der einzelnen Werte

LabVIEWForum.de

Normale Version: Einlesen von Excel-Listen und dynamische Weiterverarbeitung der einzelnen Werte
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich bin ein ziemlicher Anfänger, was die Nutzung von LabVIEW betrifft und hätte da ein paar grundlegende Fragen diesbezüglich.
Also ich bin zur Zeit dabei ein Programm zu schreiben, dass 10 000 bis 100 000 Werte einlesen soll. Zu jedem einzelnen Wert soll eine statistische Berechnung durchgeführt werden und die Werte anschließend in Klassen unterteilt werden.

So meine Fragen:
Kann ich soviele Werte überhaupt einlesen? Wenn ja? Wie bekomme ich es hin, dass mein Programm dann dynamisch die einzelnen Verteilungen berechnet?
Wie kann ich verhindern, dass nach Ausgabe eines bestimmten Index von meinem Array der Wert gerundet wird? Ich brauche nämlich den exakten Wert?

Zum besseren Verständnis habe ich mal beide VI´s hochgeladen. Bis jetzt ist da noch nichts zu sehen von einer Listeneinfügung. Die Eingabe-Liste ist mit Excel erstellt wurden. Es kann natürlich auch sein, dass es ein absolut idiotisches Unterfangen ist, die Berechnung mit LabVIEW zu machen. Wer der Meinung ist, kann es mir ruhig sagen. Dann muss ich mir eben was neues überlegen, oder vielleicht hat derjenigen dann einen Vorschlag, mit was ich sonst arbeiten könnte.

Ich würde mich über Hilfe sehr freuen.
Gruß

Summel


Die Dateien wurden mit LabVIEW 8.5 erstellt.
[attachment=13863]
[attachment=13864]
[attachment=13865]
Hallo Summel,

vorab ist mir aufgefallen, welche verschachtelte Case-Struktur Du in Klassen.vi erstellt hast.
Das mußt Du nicht so kompliziert machen. Das geht in einer Case mit entsprechend vielen Fällen, da Du an den Entscheidungsanschluß auch einen Zahlenwert anschliessen kannst.
Schau Dir mal das kleine Beispiel an.
Lv85_img[attachment=13867]

Jetzt zu den Fragen. Natürlich kannst Du 10' oder 100' Werte mit LV einlesen und damit rechnen. Ist einfach eine Frage des Speichers der davon belegt wird.

Wie meinst Du die Frage: ... dass mein Programm dann dynamisch die einzelnen Verteilungen berechnet ?
Wo denkst Du, daß LV eigenständig rundet?
Wenn Du es nicht programmierst und keine Typ-Konvertierungen durchführts, rundet LV nicht eigenständig.
(Lassen wir mal die "Ungenauigkeit" die Fließkommaoperationen ansich mit sich bringen außen vor.)

Ich hab keine Ahnung was Du mit den Werten anfangen bzw. berechnen möchtest. Aber grundsätzlich sollte nichts dagegen sprechen. Wäre vielleicht vorteilhafter wenn Du etwas genauer beschreibst wo der Schuh drückt.

Grüße
Andreas
Hallo Andreas,

danke für den Typ mit der Case-Struktur. Ich wollte auch erst Case nehmen, wusste aber nicht, wie ich dem Programm erkläre, dass er immer nur in einem bestimmten Intervall sich bewegen darf.

Also ich erkläre mal, was ich genau zu tun habe. Ich habe 10' bis 100' Durchmesser gegeben. Zu jedem einzelnen Durchmesser berechne ich eine Sehnenlängenverteilung. Da ich nur den Durchmesser habe und keine Ahnung wie viele Sehnenlänge prinzipiell ich bekomme, definiere ich mir einfach eine Schrittlänge von 1 (Angaben alle in µm).
[attachment=13896]

Ich berechne dann die Sehnenlänge über den Satz des Pythagoras, d.h. l=Wurzel(r² - L²). Achtung: die Sehenlänge wird für den gesamten Kreis bestimmt, also muss ich alles mal 2 nehmen => Sehnenlänge = 2*Wurzel(r² - L²)
Nachdem mein Programm die Werte berechnet hat, soll es diese in Klassen einteilen, dass ist das was in Klassen.vi gemacht wird.
Danach sind die Werte am besten in ein Histogramm zu übergeben und auch in einen Graphen zwecks Auswertung.
Der Vorgang wird dann für jeden einzelnen Durchmesser wiederholt.

Wo ich denke, dass mein Programm rundet ist eigentlich bei meinen eigenen Klassen.vi. Wenn er den Wert bekommt und mir dann ausgeben soll, rundet er auf. Er gibt mir keine Kommazahl aus, obwohl auf alle Fälle eine eingelesen worden ist.

Wie lese ich jetzt bei deinem Klassen.vi die ganzen Werte der Liste ein und wie kann ich am besten die sortierten Werte dann abspeichern? Wahrscheinlich soll das wieder am besten in einer Excel-Tabelle geschehen. Ich werde auf alle Fälle heute noch ein bisschen dran herumdoktorn, aber vielleicht hast du ja eine Idee
Auf alle Fälle möchte ich dir schon mal danken, dass du dir die Zeit genommen hast und über mein Problemschen nachgedacht hast. Somit habe ich Hoffnung, dass doch noch irgendwie hinzubekommen.

Viele Grüße


Summel
' schrieb:Wo ich denke, dass mein Programm rundet ist eigentlich bei meinen eigenen Klassen.vi. Wenn er den Wert bekommt und mir dann ausgeben soll, rundet er auf. Er gibt mir keine Kommazahl aus, obwohl auf alle Fälle eine eingelesen worden ist.

Grundsätzlich wird das "Anzeigeelement" zur Anzeige gerundet, der Wert intern nicht, d.h. wenn du berechnungen machst, wird mit dem internen Wert gerechnet.

Bsp. PI, 3.14159........
In einem Anzeige DBL mit "4 Digis of precision" steht dann halt 3.1416, gerechnet wird aber mit 3.1415926535897932

Warum bei dir keine Kommazahl rauskommt liegt ev. daran das es eine Punktzahl erwartet du aber in der Datei Kommas hast.
Offtopic2

Mal wieder eine (nicht unbedingt persönlich gemeinte) öffentliche Ermahnung:

Bilder gehören als Upload ins Forum, nicht auf externe Links, s. hierzu die Forenregeln.

Und wenn du ein so einfaches Bild als PNG anstatt als BMP abspeicherst, dann ist es nur wenige kByte anstatt fast 1 MByte groß.

MfG, Jens
' schrieb:Wie lese ich jetzt bei deinem Klassen.vi die ganzen Werte der Liste ein und wie kann ich am besten die sortierten Werte dann abspeichern? Wahrscheinlich soll das wieder am besten in einer Excel-Tabelle geschehen. Ich werde auf alle Fälle heute noch ein bisschen dran herumdoktorn, aber vielleicht hast du ja eine Idee

Hallo Summel,

ich hab eben mal schnell nachgesehen, was LabVIEW hinsichtlich Histogramm denn anbietet. Das ist ja nichts außergewöhnliches.
Hast Du Dir mal die Statistik-Palette angesehen?
Dort findest Du z.B. eine "histogramm.vi" das Dir viel Arbeit sparen kann.

Was das wieder abspeichern der Daten anbelangt hängt davon ab, was Du mit den Daten später anfangen möchtest.
Wenn Du die Messwerte nur neu angeordnet in Excel abspeichern möchtest, dann kannst Du sicher auch in Excel sortieren und musst den Umweg über LV nicht gehen. Deshalb gehe ich davon aus, daß Du das Histogramm speichern möchtest.
Stimmt das?

Grüße
Andreas
Referenz-URLs