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 

Zeile in 2D-Array einfügen



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!

24.09.2008, 06:31
Beitrag #1

s200rs Abwesend
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Jul 2005

7.1 / 8.5.1
2002
DE

02826
Deutschland
Zeile in 2D-Array einfügen
Hallo,

hier mal eine Frage, die eigentlich in die Grundlagen gehört:

Ich habe ein 2D-Array (U32) und ein eindimensionales. Das eindimensionale möchte ich am Ende als Zeile in das zweidimensionale einfügen.

Dazu wollte ich "Array erstellen" benutzen, weil bei "In Array einfügen" Daten abgeschnitten werden, falls die Spaltenanzahl des eindimensionalen Feldes größer als die des zweidimensionalen ist, und die Spaltenanzahl jeweils zwischen 0 und 5 variieren kann.

Und genau bei 0 liegt das Problem. Ist mein 1D-Array leer bekomme ich bei jedem der genannten Sub-VIs eine Zeile, gefüllt mit "0", an mein 2D-Array gehängt.

Ist hingegen das 2D-Array leer, erscheint nur die angehängte Zeile im Ergebnis.

Ich denke, daß hier ein Fehler von LV vorliegt, denn beim Einfügen eines leeren 1D-Arrays an ein bestehendes 1D-Array ändert sich ja auch nichts.

Das hat mich auf die Idee gebracht, aus dem 1D-Array ein 2D-Array zu machen und das dan anzuhängen, aber auch hier bekomme ich eine Zeile mit Nullen angehangen.

Aber eine Zeile mit "0" ist doch was anderes als "nichts", was ich ja eigentlich anhängen will.

Ist das Problem bekannt oder hat jemand 'ne Lösung?

Beispiel:


Angehängte Datei(en) Thumbnail(s)
   

________________

LV 7.1; 8.5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2008, 06:54
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Zeile in 2D-Array einfügen
Hmm

Ob das "Verhalten" von LV jetzt so korrekt ist der nicht, ich glaube, darüber kann man streiten. Einerseits hast du recht, dein anzuhängendes Array ist ja leer, andererseits, es hat ja schon eine "Dimension", die du anhängst...

Aber eine Lösung hab ich natürlich:

Überprüfe vor dem Anhängen die Größe des Arrays, wenn 0, wird nichts angehängt:
   
(Im "1, Default" Case steht dann die Build-Array-Fkt.)

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2008, 06:56
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeile in 2D-Array einfügen
Das Manipulieren der Arrays durch Auffüllen mit Nullen ist zwar einerseits normal, da das Resultat ja immer rein "rechteckig" sein muß. Aber daß das auch bei einem völlig leerem Array geschieht, halte ich auch nicht für in Ordnung und würde es als Bug bezeichnen.
Das Work-arround wäre allerdings ganz einfach:
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2008, 07:16
Beitrag #4

s200rs Abwesend
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Jul 2005

7.1 / 8.5.1
2002
DE

02826
Deutschland
Zeile in 2D-Array einfügen
Danke erst mal für die Antworten.

An den Test vorher, ob das Feld leer ist, hab ich auch schon gedacht, es ist halt jetzt bißl blöd, eine case-Struktur in das Programm reinzuquetschen.

Aber ich denke schon, daß es ein Fehler ist, denn, wie Jens sagt, hat zwar mein anzuhängendes Feld eine Dimension, aber ich hab's ja auch mit leerem 2D-Array ausprobiert, das ja auch eine Dimension, oder besser 2 hat, und da verhält es sich ja so wie erwartet bzw. erwünscht - im Ergebnis steht nur die Zeile des 1D-Arrays.

Wenn beide leer sind, ist auch das Ergebnis leer. Das paßt ja auch.


Mir kommt halt das Verhalten bißl komisch vor, da werde ich erst mal nicht um die case-Struktur herum kommen.

Vielleicht kann ja jemand von den Admins das Thema in die Kategorie "Bugs" LV8.5 verschieben.

Gruß Andreas

________________

LV 7.1; 8.5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2008, 07:33
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Zeile in 2D-Array einfügen
Ich kann da noch keinen Fehler sehen.

' schrieb:Und genau bei 0 liegt das Problem. Ist mein 1D-Array leer bekomme ich bei jedem der genannten Sub-VIs eine Zeile, gefüllt mit "0", an mein 2D-Array gehängt.
Das Anhängen eines leeren 1D-Arrays an ein 2D-Array als Zeile des 2D-Array erzeugt selbstverständlich eine Nuller-Zeile. Auch ein leeres 1D-Array ist ein 1D-Array. Da aber bei einem 2D-Array alle Dimensionen jeweils gleich lang sein müssen erscheint eine Nuller-Zeile.

Zitat:Ist hingegen das 2D-Array leer, erscheint nur die angehängte Zeile im Ergebnis.
Klar.

Zitat:denn beim Einfügen eines leeren 1D-Arrays an ein bestehendes 1D-Array ändert sich ja auch nichts.
Das kannst du aber mit einem 2D-Array nicht vergleichen. Beim Anfügen an ein 2D-Array wird "in einer anderen Dimension" angefügt. Bei 1D an 1D werden lediglich die Daten angehängt - und da da nix ist, wird nichts angehängt. Bei 1D an 2D wird ein Array also solches angehängt - und da ist es egal, ob leer oder nicht.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2008, 08:11
Beitrag #6

s200rs Abwesend
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Jul 2005

7.1 / 8.5.1
2002
DE

02826
Deutschland
Zeile in 2D-Array einfügen
' schrieb:Da aber bei einem 2D-Array alle Dimensionen jeweils gleich lang sein müssen erscheint eine Nuller-Zeile.

sind sie ja auch, es dürfte gar keine Zeile eingefügt werden, weil ja effektiv gar keine Daten hinzukommen. Und somit verändern sich die Dimensionen auch nicht, sie bleiben gleich.

So klar ist mir dann aber nicht, warum es funktioniert, wenn das 2D-Array leer ist.
Wenn das so einfach funktionieren würde, müßte es ja gehen, wenn ich zu dem 1D-Array eine Dimension hinzufüge (das ja dann trotzdem leer ist) und das dann anhänge. Doch dort bekomme ich ja aber auch die Nuller-Zeile.

Gruß Andreas

________________

LV 7.1; 8.5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2008, 09:16
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeile in 2D-Array einfügen
' schrieb:So klar ist mir dann aber nicht, warum es funktioniert, wenn das 2D-Array leer ist.
Also ich teile Dein Bedenken voll und tendiere dazu, daß es ein Bug ist. Es kann aber auch sein, daß es für dieses Verhalten einen gewichtigen, durch ein Beispiel belegbaren Grund gibt, daß es NI so gemacht hat.

Auf jeden Fall ist es ein Glück, daß es wenigstens mit leerem 2D-Array funktioniert. Denn ansonsten könnte man im Bild unten die einfache for-Schleife (oben) nicht verwenden und müßte immer die häßliche und umständliche untere For-Schleife benutzen.

   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2008, 09:53 (Dieser Beitrag wurde zuletzt bearbeitet: 24.09.2008 09:54 von Lucki.)
Beitrag #8

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Zeile in 2D-Array einfügen
' schrieb:Das Anhängen eines leeren 1D-Arrays an ein 2D-Array als Zeile des 2D-Array erzeugt selbstverständlich eine Nuller-Zeile.
Das finde ich überhaupt nicht selbstverständlich, daß eine angehängte Leerzeile dasselbe Ergebnis liefert wie eine angehängte Zeile mit Nullen. Diese unterschiedlichen Arrays sollten doch auch unterschiedliche Ergebnisse ausmachen.
Solche formalen Überlegenungen über Selbstverständlichkeiten oder nicht helfen hier auch nicht weiter. Fakt ist doch, daß NI es sowohl so als auch so hätte machen können. Und die Frage ist: gibt es einen überzeugenden Grund, daß es Ni so gemacht hat und nicht anders? Gibt es ein Beispiel-VI, welches zeigt, daß es vorteilhaft war, es so zu machen? Mir fallen nur Nachteile auf, wenn es so ist wie jetzt, und deshalb halte ich es für einen Bug.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Kein leeren sondern gar kein String in Array einfügen Philipp_O 3 3.312 25.08.2022 15:06
Letzter Beitrag: Kiesch
  Aus 2D-Array jede x-te Zeile in weiteres 2D-Array schreiben P.J. 5 5.351 13.11.2020 09:05
Letzter Beitrag: GerdW
  Queuereferenz in Array einfügen - Fehler t.hipp 3 3.341 07.02.2018 17:32
Letzter Beitrag: t.hipp
  2D-SubArray frei in 3D- bzw. 2D-Array einfügen F.Bi 5 4.363 07.07.2015 13:24
Letzter Beitrag: F.Bi
  Werte In Array einfügen kadke 3 7.520 03.02.2015 12:45
Letzter Beitrag: GerdW
  Zeile löschen im Array Headskiiert 17 13.422 05.02.2014 19:53
Letzter Beitrag: Headskiiert

Gehe zu: