Richtige Bedienung der Arrays

Anfängerfragen, die mit LabVIEW zu tun haben
Правила форума
In unserem Forum ist es möglich Foren zu verbergen. Für jede Sprache gibt es eine Gruppe:

hide XXX forums

Wenn du also ein Forum in einer Sprache nicht sehen möchtest, dann musst du einfach in die richtige Gruppe(n) eintreten. Das kannst du in den Profileinstellungen machen.
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Richtige Bedienung der Arrays

Сообщение kongaa »

Hallo an alle Forummitglieder,

bin neu im Forum, als auch beim Nutzen und Bedienen des LabViews. Versuche im Moment in meinen Übungsstunden etwas zu forschen, um das LabView etwas näher kennenzulernen. Nun sitze ich schon seit einigen Tagen an einem Problem, kom einfach nicht weiter. Aus diesem Grund stelle ich diese Frage an die Profis von Euch.

Hab 4 Array-Felder mit der Größe 5x5 (2D Array). Diese werden im Anschluß in ein 10x10 Array zusammengefügt. Nun zu der Hauptaufgabe. In jedem Array und somit in jedem Feld befinden sich verschiedene Zahlen. Nun möchte ich ZUERST in jedem von diesen 4 5x5 Arrays nach einer bestimmten Zahl suchen. Ist die Zahl in irgend einem Feld vorhanden, so muss dieses 5x5 Array mit nur einer Zahl komplett ausgefüllt werden. Das Gleiche mit allen anderen 3 5x5 Arrays auch. Und nun alle diese 5x5 Arrays in ein großes Array 10x10 zusammenschließen.

Wie kann ich das regeln, bitte um Hilfe. Beispiel VIs sind auch willkommen.

Danke und Gruß
Konstantin
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение Eugen Graf »

Also am besten machst du aus den 4 2D-Arrays ein 3D Array (mit Build Array).
Dann startest du eine For-Schleife und schliesst dort dein 3D-Array an.
In der For-Schleife machst du noch eine For-Schleife und innerhalb der inneren For-Schliefe nimmst du das Search 1D-Array VI und suchst damit also nach deiner bestimmten Zahl.
Wenn du soweit bist können wir überlegen wie du das Array mit einer Zahl füllen und ausgeben kannst.
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение kongaa »

Danke eg, bin zum Teil fertig!!! :1stplace:
Hab wie folgt gemacht
1) 4 5x5 Arrays erstellt
2) diese einzeln in ein Case eingefügt, und das Case in eine For-Schleife mit 4 Durchläufen
3) suche dann in jedem Array mit einer doppelten Forschleife den gesuchten Wert. Wenn eine Übereinstimmung statt findet, so wird ein neu erstelltes Array (alles mit einer Zahl gefüllt) in das 10x10 Array auf die richtige Stelle geschrieben
:super: Und es funzt. Nun kann ich aus diesen allen 4 Arrays die beliebige Zahl suchen und wie gewünscht im Gesammtenarray ausgeben.
Ist etwas komplizierter geworden, ist jedoch ok :wink: . Wenn ich ehrlich bin, so mag ich dynamische Systeme. Werde also demnächst an diesem Programm arbeiten, damit der User via Einstellungsmöglichkeiten die Arraygrößen und Anzahl der Arrays noch bestimmen kann, merke aber schon, dass es :suicide: sein wird. :D
Werde mich in den nächsten Tagen melden, wenn ich weitere Probleme bekommen. Und soweit schönen Abend!!!

Gruß
Konstantin :ru: :de: :uk:
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение kongaa »

eg, ist das eigentlich dein Forum?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение Eugen Graf »

kongaa писал(а): 2) diese einzeln in ein Case eingefügt, und das Case in eine For-Schleife mit 4 Durchläufen
Ich vermute so wie du es gemacht hast, ist es gar nicht dynamisch. Es wird echt schwierig sein alles vom User einstellbar zu machen.
eg, ist das eigentlich dein Forum?
Ja
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение kongaa »

Hallo eg,

nagut, über die Dynamik werden wir später noch sprechen. Sicher ist zumindest jetzt schon, dass es schwer sein wird die Eingabe- und Ausgabefelder in der Frontpanel auch dynamisch zu halten. Ich habe das jetzt so geregelt, dass die Felder einfache Matrizen sind, die dann in Arrays umgewandelt werden. Sieht einfach von der Struktur besser aus, als wenn ich eine einfache Tabelle verwenden würde. Lasse mich aber natürlich dem Besseren belehren.

Gruß
Konstantin
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение kongaa »

Hallo eg,

nun kommen meine nächsten Fragen. Bin jetzt etwas weiter gekommen, jedoch stört mich ein Problem, wo ich noch keine Lösung habe. In C, C++, Java usw. fast in jeder Sprache, kannst man in jeder und von jeder Schleife aus Variablen definieren oder halt gleich an die Ausgangsperipherie weiterleiten. Dabei spiel es keine Rolle, wie viele Schleifen man in einander geschachtelt hat. Nun zu meinem Problem. Ich habe einige Schleifen.
Case, in diesem Case eine for-Schleife, in dieser for-Schleife noch ein Case. Meine Ausgangsmatrix (die mir eine visuelle Ansicht gewährt), befindet sich außerhalb des äußeren Case-Fensters. Der ganze und entscheidende Ablauf findet aber im mittleren, als auch im äußeren Case-Fenster. Wie kann ich das so erstellen, dass meine Ausgangsmatrix bei jedem Schleifendurchlauf den Wert aktualisiert? Oder wie arbeite ich mir Variablen (Arrayfelder)?

Gruß
Konstantin
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение Eugen Graf »

Kannst du ein Screenshot von deinem Block Diagramm machen? Ich tippe einfach auf deine Unerfahrenheit, es gibt aber bestimmt eine Lösung für dein Problem.
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение kongaa »

Ja, mache ich heute Abend.
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Temp

Сообщение kongaa »

Hi eg,

hier das versprochene Screenshoot. Wie Du siehst, geht von der außeren If Schleife und auch von der inneren Case Schleife Werte in das Replace Array Subnet.
Und hier kommen leider nicht alle Daten nach einander an.

Hast Du einen Tipp?

Gruß
Konstantin
Вложения
Unbenannt.png
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение Eugen Graf »

Das große Problem ist der Vergleich zweier Zahlen. In Arrays hast du Kommazahlen stehen und willst diese mit einer anderen Zahl vergleichen.
z.B. 5.7489247824242 ist ungleich 5.7489247824243 bei der letzten Nachkommastelle. Ausserdem werden die Zahlen von Programmiersprachen nicht 100% genau interpretiert, denn es gibt eine Grenze der Genauigkeit beim Repräsentieren einer Kommazahl. Erkundige dich z.B. über die Machinenkonstante-Epsilon.
Du musst also die Zahlen entweder Ganzzahlig vergleichen oder Min/Max Grenzen beim Vergleichen definieren. Dazu kannst du z.B. In Range and Coarse.VI nehmen.
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение kongaa »

Das Problem liegt nicht in dem Vergleicher! Vergleicher bekommt ein Int und vergleicht dann mit einem Float. Float wird dann intern auch in Int umgewandelt, wenn nötig dann auch gerundet. Das ist aber wirklich nicht das Problem. Problem ist in diesen verschachtelten Schleifen. Von unten links geht ein Array Strang in die grüne If-Anweisung. Wenn FALSE rauskommt, so werden die Daten direkt in das Replace Array Subnet (orange Feld links) übertragen, wenn nicht, dann geht das weiter in die For-Schleife und dann in die Case-Anweisung. Hier haben wir gleich 3 Schleifen über einander stehen. Jetzt hat aber jede Case-Anweisung eine Funktion. Diese Daten sollen an das Replace Array Subnet bei jedem Schritt übertragen werden, wenn Case jeden Schritt macht. Werden aber nicht, da alle Schleifen nicht komplett beendet werden, sondern erst nach dem, die oberster Case-Anweisung abgelaufen ist.
Meine Frage ist: Z.B. habe ich in meinem Programm ein Replace Array Subnet, denn ich von jeder Stelle des Programm füttern möchte. Egal ob es in oder außerhalb einer Schleife gemacht wird. Gemeint ist auch, dass ich es von mehreren Stellen des Programms gleich speisen kann. Wichtig ist nur, dass wenn ich ein Wert schreibe, dann diese sofort auch an den Replace Array Subnet übergeben wird. Geht das über eine Variable, wie das z.B. bei Feldern der Fall ist? Weil das mit Rechtsklick und Create habe ich nichts Passendes gefunden.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение Eugen Graf »

Also erstens siehe den roten Punkt am Vergleich->Umwandlung des Datentyps, d.h. Int wird auf Double umgewandelt und nicht umgekehrt.
Rest später, habe jetzt keine Zeit.
kongaa
beginner
beginner
Сообщения: 17
Зарегистрирован: 10 янв 2009, 18:19
Версия LabVIEW: ----
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение kongaa »

Hallo eg,

hast Du eine Lösung für mein Problem?

Gruß
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Richtige Bedienung der Arrays

Сообщение Eugen Graf »

Also ich hätte es nach meiner Vorstellung ungefähr so gemacht:
Вложения
Arrays.png
Arrays.vi
(20.65 КБ) 160 скачиваний
Ответить

Вернуться в «Für Anfänger»