LabVIEWForum.de - Wert in Array verrechnen und austauschen

LabVIEWForum.de

Normale Version: Wert in Array verrechnen und austauschen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Liebes LV-Forum

Habe mal Zeit und will mich mit den Array- und Clusterfunktionen anfreunden.
Zu diesem Zweck hab ich ein kleines Vi gebastelt, das Zufallswerte erzeugt und die Häugigkeit in einem 1-D-Array ablegt.
Dazu inkrementiere ich einfach die Zahl an Position Array(i), i=Zufallszahl.

Bei den Arrayfunktionen habe ich keine Funktion gefunden, die das in einem Schritt erlaubt. Oder ...?

Also mach ich das in 3 Schritten.
- Über Index Array Wert an Position i auslesen
- Wert inkrementieren
- Wert mit mit Replace Array Subset (Teilarray ersetzen) zurückschreiben.

Geht das nicht einfacher?

Viele Grüße

JoBlau

Version des Vi's LV 8.6
' schrieb:Geht das nicht einfacher?
Die Häufigkeit einer Zahl in einem Array herausfinden? Ja. Mathemathik->Wahscheinlick&Statistik->Histogramm VI. 1. Nur ein Schritt nötig.

Wink
Ja, mit der "In Place Element Structure". Und natürlich mit Shift-Register, damit man sich Sequenz und Lokale Variablen spart! I32 langt ebenfalls für Histogramm (vgl. dimitri84)

[attachment=23314]

Gruß, Jens
Hallo Dimitri84 und Jens G!

Das Histogramm ist weniger das Problem, was ich zu lösen versuche. War nur eine Übung um ein Feeling mit dem Umgang von Arrays zu kriegen.
In der Hauptsache geht es um den Zugriff (Auslesen und Ändern) auf die Elemente des Arrays. Trotzdem Danke für den Tipp, probiere ich auch gleich mal aus.

Mich hat gewundert, dass ich den Vorgang in mehreren Schritten machen muss (wie ich oben beschrieben habe) und nicht einfach wert(i) := wert(i) + 1

@Jens G
Kannst Du das Vi hochladen, ich kann die Symbole und die Funktionen nicht zuordnen.

Vielen Dank

JoBlau
' schrieb:Mich hat gewundert, dass ich den Vorgang in mehreren Schritten machen muss (wie ich oben beschrieben habe) und nicht einfach wert(i) := wert(i) + 1
Auch dieses hier sind drei Schritte: Array indizieren, den Wert um 1 erhöhen und den neuen Wert im Array ersetzen.

Alles nur eine Frage des Standpunktes.

Das mit dem Implacement entspräche im übrigen wert(i)+=1;
' schrieb:@Jens G
Kannst Du das Vi hochladen, ich kann die Symbole und die Funktionen nicht zuordnen.
Beim Nachbauen lernst du mehr...
Die In Place Struktur findest du hier:
[attachment=23319]
Schieberegister weißt du hoffentlich! (Rechtsklick auf Rahmen -> Create -> Shift-Register).

Gruß, Jens
@Jens G:
Ohne die Beschreibung hätte ich die In Place Strucktur nie gefunden. Wäre überhaupt nicht auf eine Idee gekommen, wozu man die einsetzen kann.

Habe die Lösung mit In Place nachgebaut. Es sieht einfach elegant aus und erweckt den Eindruck resourcenschonender zu sein.
Ja ich weiß, das ist ja alles nicht mehr so nötig. Aber wenn man mal mit Bit und Byte und Taktzyklen knausern musste, dann hat man eine Neigung zu schlanken, aber nicht unbedingt besseren, Lösungen.

Das Histogramm habe ich auch mal eingebaut. Ist natürlich viel einfacher. Doch mein Ziel ist es mehr Routine im Umgang mit Array und Clustern zu kriegen.

Vielen Dank für eure Hilfe

JoBlau
' schrieb:Das Histogramm habe ich auch mal eingebaut. Ist natürlich viel einfacher. Doch mein Ziel ist es mehr Routine im Umgang mit Array und Clustern zu kriegen.

Ich hab' das schon verstanden was deine Absicht war. Meine erste Antwort eher als Spaß gedacht.

Ich kann das im Übrigen sehr gut nachvollziehen, dass einem am Anfang der Umgang mit arrays so seine Schwierigkeiten bereitet.
Referenz-URLs