LabVIEWForum.de - Einzelne Elemente aus array entfernen

LabVIEWForum.de

Normale Version: Einzelne Elemente aus array entfernen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich steh mal wieder auf dem Schlauch. Ich will ein Array/Diagramm aus einem ASCII file erstellen, welches das Photometer ausspuckt. Das funktioniert soweit ganz gut, allerdings haut das Photometer immer ein paar fehlerhafte Daten dazwischen, die rausgefiltert werden müssen. Die Bedingung wäre "if (Element n) - (Element n+1) > 1 (bzw. ABS) then delete...".
Ich denke mit dem jpg ist das verständlich.
Mein Plan war aus einer for-Schleife (zuvor array-Größe ermittelt) und dann mit "aus Array entfernen" oder "Teilarray ersetzen" was zu basteln. Leider klappt das vorne und hinten nicht. Daher habe ich beigefügten vi meine Schleifen-Versuche weggelassen. Wäre schön, wenn mir jemand den Trick mit einem neuen Array aus der Schleife zeigen könnte (wenn's denn eine gute Wahl ist).

Schöne Grüße

PeterLv80_img

[attachment=11629]

[attachment=11630]

[attachment=11631] (Anm.: Originalendung war .asc, darf ich aber nicht hochladen !?)
Hallo,

dumm gelaufen. Habe natütlich die falsche Datei angehängt (da sieht alles super aus).
Da das vi ja schon runtegeladen wurde, gab's wahrscheinlich dumme Gesichter.Mellow
Das passiert, wenn man 01D2S1 mit 01D2D1 verwechselt. Neuer file hängt dran, der passt jetzt auch zum jpg.
Ich bin inzweischen soweit, dass ich die fehlerhaften Werte aus dem string-array gelöscht bekomme, allerdings hauts mir
beim konvertieren in dbl immer eine 0 dahin. Wenn ich das abstellen könnte, wäre mir schon geholfen.

Demütigst

Peter

[attachment=11640]
Dann lad doch mal den aktuellen Zwischenstand als VI hoch, wenn es jetzt schon besser funktioniert. Dein erstes VI ist ja so rudimentär, da fange ich gar nicht erst an ....

MfG, Jens
Hallo,

hier der Zwischenstand, ich hoffe es ist nicht zu chaotisch.
Ich teile das 2D-string array in 2 x 1D-stringarray auf, entferne alle Werte <1 der zweiten Spalte (andere Bedingung als im ersten Beitrag) und füge sie zu einem 2D-array wieder zusammen.
Wie gesagt, die Konvertierung in dbl macht da noch Probleme.
Schönen Gruß

PeterLv80_img

[attachment=11647]
Wieso arbeitest du noch mit 1D-String-Arrays weiter, die Wandlung in Zahlen hast du doch hinbekommen?

Und dann schau mal hier, das ist fast identisch zu deinem Problem und sollte dir die Idee geben, wie du deine Frage lösen kannst.

MfG, Jens

EDIT: Im einfachsten Fall sieht das dann so aus:
[attachment=11648]
Hallo,

vielen Dank für den Tipp. Warum ich mit 1D-arrays arbeitete? Weil ich ich Anfänger bin und das als Hoffnung sah eine einzelnes Element zu löschen. Bei 2D gehts ja wohl nur zeilen-, bzw. spaltenweise. Ist natürlich Unfug, aber ich habe so viel versucht...(Verzweiflungsakt!?)

Der link und dein jpg lassen mich erahnen, wie es gehen könnte. Allerdings habe ich bei deinem Bild ein Anfängerproblem. Ich habe leider keine Ahnung wie/woher man diese Dreiecke am Schleifenrand bekommt (oder gar 2 wie in deinem link).Sad
Und auch das Symbol neben der Schleife (wohl irgendwie Dbl-2D) bekomme ich nicht hin.
Ich hoffe das bekomme ich in den nächsten Wochen noch drauf, daher wäre eine kleine Erklärung oder vi jetzt hilfreich.

Dank und Gruß

Peter

[attachment=11650]
' schrieb:Hallo,

vielen Dank für den Tipp. Warum ich mit 1D-arrays arbeitete? Weil ich ich Anfänger bin und das als Hoffnung sah eine einzelnes Element zu löschen. Bei 2D gehts ja wohl nur zeilen-, bzw. spaltenweise. Ist natürlich Unfug, aber ich habe so viel versucht...(Verzweiflungsakt!?)
Die Betonung lag auf String-Array.
' schrieb:Der link und dein jpg lassen mich erahnen, wie es gehen könnte. Allerdings habe ich bei deinem Bild ein Anfängerproblem. Ich habe leider keine Ahnung wie/woher man diese Dreiecke am Schleifenrand bekommt (oder gar 2 wie in deinem link).Sad
Das ist ein Shift-Register (dt. Schieberegister), Rechts-Klick auf Rand der Schleife -> Create -> Shift-Register.
' schrieb:Und auch das Symbol neben der Schleife (wohl irgendwie Dbl-2D) bekomme ich nicht hin.
Das ist ein konstantes leeres 1D-Double-Array. Kann am Ende per Rechts-Klick -> Create -> Constant erstellt werden.

MfG, Jens
Hallo

Vielen Dank, ich versuche mich dann mal da dran...
Im Zweifel ist interpolieren wohl einfacher.

Gruß

Peter
Hab mal Beispiel gemacht, das aber nur unter diesen Voraussetzungen funktioniert:
1.) Was unter 10 ist ist fehlerhaft und wird durch den Mittelwert der beiden Nachbardaten ersetzt
2.)Erstes und letztes Element des Arrays sind fehlerfrei
3.) Es kommen nicht mehrere Fehler unmittelbar hintereinander vor
[attachment=11658] Lv80_img[attachment=11659]
Hi Lucki,

vielen Dank, dass müßte eigentlich so passen. Die Nebenbedingungen sind üblicherweise bei den Spektren erfüllt.
Ich schau mir das Ostern mal genauer an, bis dahin habe ich mir eine LabVIEW-Pause auferlegt.Smile

Schönen Gruß
Peter
Referenz-URLs