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 

1D-Array in 2D-Array mit Clusterarray umwandeln



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!

04.06.2013, 10:25
Beitrag #1

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



1D-Array in 2D-Array mit Clusterarray umwandeln
Hallo!

Von einem Gerät bekomme ich ein eindimensionales Array. Das Array könnte z.B. 1000 Werte beinhalten. Die Werte von 0-9 bilden einen Block, dann von 10-19 ...

Ich bilde mir eine Clusterkonstante (später eine Typdefinition, in dem Beispiel aber noch nicht) mit 10 Elementen, die ich benennen kann, z.B. Messwert X, Messwert Y ...

Zunächst erzeuge ich aus dem 1D-Array ein 2D-Array mit entsprechender Spalten- und Zeilenzahl. So ein Array ist unübersichtlich, weil für spätere Datenweiterverarbeitung die Messwerte in unterschiedlichen Bereichen weiterverarbeitet werden. Also möchte ich aus dem 2D-Array ein Cluster-Array machen, damit die Messwerte in dem Cluster benannt werden können.

Dazu habe ich eine "Schnittstelle" gebildet in einer for-Schleife, dort die Daten in ein Cluster umgewandelt. Dann hab ich diesen unbenannten Cluster in einen benannten Cluster umgewandelt und wieder an einen indizierten Schleifenausgang gelegt, so dass ich am Ende ein Clusterarray bekomme in der Form, wie ich es haben möchte.

Das Beispiel funktioniert so gut.

Meine Frage nun - ist es möglich, dies auf eine andere Variante zu tun? Der Grund ist folgender - ich muss bei der Funktion Array mach Cluster angeben, welche "Dimension" der Cluster haben soll. Ich gehe davon aus, dass die Dimension vor dem Programmstart angegeben werden muss und ähnlich wie bei der Größe der Historiendaten bei einer Graphenanzeige nicht während der Laufzeit veränderbar ist. Das macht auch in diesem Beispiel keinen Sinn, da die entsprechende Anzahl an Verbindungslinien zwischen benannten und unbenannten Cluster angepasst werden müsste.

Eine andere Variante wäre mit zwei verschachtelten for-Schleifen zu arbeiten und die Werte dann in den Cluster übergeben, um so schnell auf eine Änderung der Anzahl der Elemente in dem Cluster reagieren zu können.

Aber geht es vielleicht auch mit einer Art "Typenumwandlung"? Es gibt in dem Bereich "Cluster, Klasse, Variant" z.B. die Funktionen nach spezifischer Klasse umwandeln.

Bieten diese Funktionen nach spezifischer Klasse / nach allgemeiner Klasse auch eine Möglichkeit, mein "Problem" auf eine elegante übersichtliche Art zu lösen?

Ich habe mal das bisherige als Bild und als LabView-Programm (in der Version 2010 gespeichert) beigefügt.

Falls mir jemand einen Tipp für eine andere Variante geben könnte, würde ich mich sehr darüber freuen. Vielen Dank im Voraus.


Angehängte Datei(en) Thumbnail(s)
   

10.0 .vi  TestPRG1D_Array_nach2D_Arrray.vi (Größe: 9,63 KB / Downloads: 181)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.06.2013, 11:09 (Dieser Beitrag wurde zuletzt bearbeitet: 04.06.2013 11:12 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 1D-Array in 2D-Array mit Clusterarray umwandeln
Hallo Hasenfuss,

ich weiß nicht, warum man ein Array erst in einen Cluster umwandeln muss, damit man an dessen Elemente herankommt. Warum nicht einfach IndexArray nehmen?
   

Außerdem:
Die Abfrage der Anzahl der Elemente im Cluster per PropertyNode ist zwar nicht falsch, hilft dir aber bei einer Änderung des Clusters nicht weiter. Du musst trotzdem "von Hand" alles in der FOR-Loop anpassen. Deshalb kannst du auch die Elementeanzahl per Konstante vorgeben...

Und jetzt ohne FOR-Loop:
   
(Evtl. noch von Zeilen- auf Spaltenindizierung umstellen...)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.06.2013, 12:33
Beitrag #3

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



RE: 1D-Array in 2D-Array mit Clusterarray umwandeln
Hallo GerdW,

Deinen Nachtrag mit der for-Schleife habe ich jetzt gelsen. Ich bin noch auf die Idee gekommen, statt Verwendung einer for-Schleife mit einer while-Schleife und einem Schieberegister zu arbeiten. Inspiriert hat mich dazu Dein Hinweis, die Funktion Array indizieren zu benutzen.

Ich werde die Variante von Dir auch gleich nochmal ausprobieren. Herzlichen Dank für Deine Hilfe und die beiden Beispiele.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.06.2013, 14:07
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 1D-Array in 2D-Array mit Clusterarray umwandeln
Hallo Hasenfuss,

zu deiner While-Schleife: Eine FOR-Loop mit Autoindizierung ist immer deinem Konstrukt vorzuziehen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.06.2013, 16:27
Beitrag #5

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



RE: 1D-Array in 2D-Array mit Clusterarray umwandeln
Hallo GerdW,

vielen Dank für Deinen Hinweis mit der indizierten for-Schleife. Ich habe mir Dein Beispiel nochmal angeschaut und es nachgebaut. Das Problem dabei ist, dass ich zwar ein Clusterarray rausbekomme, die Cluster haben aber keine Bezeichnungen und wenn ich später mit der Funktion "Cluster nach Namen aufbündeln" möchte, dann kann man sich vlt. irgendwann vertun. Ich finde es immer sehr schön, wenn die Werte einen genauen Bezeichner haben und jedes Clusterelement einen festen Bezeichner hat. Vielleicht gibt es ja noch eine weitere Möglichkeit?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.06.2013, 20:03
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: 1D-Array in 2D-Array mit Clusterarray umwandeln
Hallo Hasenfuss,

einfache Lösung: Erstelle den Array-Indikator mit dem Cluster-Typedef, das du ja sowieso noch anlegen wolltest!
Dann kannst du später Array-Elemente indizieren und erhälst Cluster mit ordentlichen Labeln...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Array aus Clustern simcum 6 5.506 26.10.2023 08:39
Letzter Beitrag: GerdW
  Array Bearbeitung simcum 4 4.306 04.03.2022 09:59
Letzter Beitrag: Kiesch
  2D Array einzelne Zeilen in anderes Array michi96 2 3.586 15.12.2021 10:53
Letzter Beitrag: michi96
  HTML als 2D Array ares2013 5 3.812 18.11.2021 19:50
Letzter Beitrag: GerdW
  Maximalwert aus Array speichern Hans96 3 5.090 15.07.2021 14:56
Letzter Beitrag: Hans96
  Array mit Array auslesen und Array erzeugen Harry2000 10 9.120 08.05.2021 06:32
Letzter Beitrag: Martin.Henz

Gehe zu: