Verwenden Sie zum Darstellen vom Matrizen lieber den Matrix-Datentyp anstatt eines 2D-Arrays, da der Matrix-Datentyp Zeilen und Spalten von reellen oder komplexen Skalarwerten für Matrix-Operationen speichert, insbesondere für einige Operationen der linearen Algebra. Die Mathematik-VIs, die Matrixoperationen durchführen, arbeiten mit Matrizen und geben auch Matrizen als Ergebnisse an nachfolgende polymorphe VIs und Funktionen weiter. Wenn ein Mathematik-VI keine Matrixoperationen durchführt, aber mit einem Matrixdatentyp arbeitet, wird die Matrix automatisch in ein 2D-Array umgewandelt. Wenn Sie ein 2D-Array mit einem VI verbinden, das per Voreinstellung Matrix-Operationen durchführt, wandelt das VI das 2D-Array je nach dem Datentyp des 2D-Arrays automatisch in eine reelle oder komplexe Matrix um.

Die meisten numerischen Funktionen sind sowohl für den Matrix-Datentyp als auch für Matrix-Operationen geeignet. So kann zum Beispiel eine Matrix mit der Funktion "Multiplizieren" mit einer anderen Matrix oder einer Zahl multipliziert werden. Sie können grundlegende numerische Datentypen und komplexe Funktionen der linearen Algebra kombinieren, um Algorithmen für exakte Matrix-Operationen zu erstellen.

Hinweis Wenn das VI oder die Funktion Daten in oder von einer Matrix oder von einem 2D-Array umwandelt, werden Typumwandlungspunkte angezeigt. Diese Art der Umwandlung hat keinen Einfluss auf die Ausführungsgeschwindigkeit, da die Matrizen auf die gleiche Art und Weise gespeichert werden wie 2D-Arrays.

Eine reelle Matrix enthält Elemente doppelter Genauigkeit und eine komplexe Matrix enthält Elemente mit Komponenten doppelter Genauigkeit. Eine Matrix kann nur zwei Dimensionen haben. Es ist nicht möglich, Arrays aus Matrizen zu erstellen. Sie können mit der "Bündeln"-Funktion mehrere Matrizen kombinieren und ein Cluster erstellen. Für Matrizen gelten dieselben Einschränkungen wie für Arrays.

Bearbeiten Sie Elemente, Zeilen und Spalten einer Matrix mit Hilfe der Matrix-Funktionen. Die Matrixfunktionen geben Matrix-Datentypen aus. Wenn Sie beispielsweise eine Zeile oder Spalte mit Hilfe der Funktion "Matrixelemente lesen" extrahieren, wird anstelle eines 1D-Arrays aus Skalarwerten eine Matrix mit einer Zeile oder einer Spalte erzeugt. Verbinden Sie diese Matrix und andere Arrays mit Hilfe der Funktion "Matrix erstellen", um anstelle eines 2D-Arrays aus Skalarwerten eine Matrix zu erstellen.

Jedes erstellte VI, das die Dimension einer Matrix reduziert, erfordert die Konvertierung der Daten in ein 1D-Array, eine Fließkommazahl doppelter Genauigkeit oder eine komplexe Zahl doppelter Genauigkeit. Wenn Sie ein 1D-Array oder eine Zahl für die Neuerstellung einer 2D-Struktur verwenden, wird anstelle der ursprünglichen Matrix eher ein 2D-Array erzeugt.

Im folgenden Blockdiagramm wird die Auto-Indizierung in einer For-Schleife verwendet, um Daten aus einer Matrix zu extrahieren und die Matrix in einem 2D-Array neu zu erstellen.

Bei aktivierter Auto-Indizierung behandelt die For-Schleife eine Matrix als 2D-Array. Wenn Sie an einer beliebigen Stelle in einem VI den Matrixdatentyp als Eingang benötigen, konvertieren Sie das 2D-Array mit Hilfe der Funktion "Array in Matrix" in eine Matrix, siehe nachfolgendes Blockdiagramm.

Deaktivieren Sie die Auto-Indizierung und verwenden Sie Schieberegister, um die Daten als einen Matrixdatentyp beizubehalten. Das nachfolgende Blockdiagramm verwendet beispielsweise Schieberegister zur Beibehaltung der beiden Dimensionen und des Datentyps der Matrix. Die Schieberegister leiten den Matrixdatentyp zwischen Iterationen weiter.

Viele polymorphe Funktionen, die den Matrixdatentyp akzeptieren, geben den Matrixdatentyp aus, selbst wenn es sich um eine Array-basierte Operation handelt. Wenn eine Funktion oder ein SubVI in einem Blockdiagramm einen Matrixdatentyp in ein 2D-Array umwandelt und nachfolgende Operationen im Datenfluss Array-basierte Operationen sind, sollten Sie die Umwandlung in ein Array zulassen und mit diesen Array-Daten arbeiten. Sie können dann mit Hilfe der Funktion "Array in Matrix" das Array bei Bedarf wieder in eine Matrix umwandeln, z. B. bei der Verwendung der VIs "Lineare Algebra".

Hinweis Wenn ein Blockdiagramm SubVIs enthält, die Matrixdatentypen akzeptieren, aber 2D-Arrays ausgeben, müssen Sie die resultierenden Arrays nicht in Matrizen zurückkonvertieren, bevor Sie die Arrays mit polymorphen den Matrixdatentyp per Voreinstellung akzeptierenden VIs oder Funktionen verbinden. Verwenden Sie für das Speichern der Daten als Matrix die Funktion "Array in Matrix", um die Daten wieder in eine Matrix zu konvertieren.

Erstellen von Matrix-Bedien- und Anzeigeelementen sowie -Konstanten

Matrixelemente zeigen per Voreinstellung mehrere Elemente an und bieten Bildlaufleisten für beide Dimensionen. Da es sich bei einem Matrixelement um eine Typdefinition handelt, fehlen die Kontextmenüpunkte Dimension hinzufügen und Dimension entfernen. Das Menü enthält dafür Optionen für die Typdefinition. Wählen Sie zum Erstellen einer Matrixkonstante im Blockdiagramm ein Matrixelement aus der Elementepalette und fügen Sie es im Blockdiagramm ein. Alternativ ist das Erstellen einer Konstante über einen beliebigen Matrixanschluss möglich. Sie können eine Matrixkonstante als Basis für den Vergleich mit einem anderen Array oder zum Speichern von konstanten Werten verwenden.

Auf dem Blockdiagramm sieht der Matrix-Datentyp wie ein reelles 2D-Array oder ein komplexes 2D-Array mit einem anderen Verbindungsmuster aus. Die VIs und Funktionen, die mit dem Matrix-Datentyp arbeiten, führen auch matrizenspezifische Operationen aus, wenn Sie einen Matrix-Datentyp am Eingang anlegen.

Wenn Sie einen Matrix-Datentyp mit einer der folgenden Funktionen verbinden, wird diese durch ein VI ersetzt, dessen SubVIs mit dem Matrix-Datentyp arbeiten:

  • Gleich?
  • Ungleich?
  • Absoluter Wert
  • Addieren
  • Multiplizieren
  • Quadratwurzel
  • Subtrahieren
  • Exponential
  • Natürlicher Logarithmus
  • X hoch Y
  • Re/Im nach komplex
  • Komplex nach Re/Im
  • Polar nach komplex
  • Komplex nach polar

Das resultierende VI hat das gleiche Symbol, enthält aber einen matrizenspezifischen Algorithmus. Wenn Sie die Matrizen von den Eingängen trennen, bleibt der Knoten weiterhin ein VI. Zum Wiederherstellen der Originalfunktion müssen am Eingang andere Datentypen anliegen. Wenn Sie einen Datentyp mit einer Funktion verbinden und der Datentyp einen Fehler bei einer mathematischen Grundoperation verursacht, gibt die Funktion eine leere Matrix oder NaN aus. Verbinden Sie beispielsweise eine (2, 3)-Matrix mit einem Eingang der Additionsfunktion und eine (3, 2)-Matrix mit dem anderen Eingang, so gibt die Funktion eine leere Matrix aus.

Vergleich von Matrizen

Vergleichen Sie Matrizen mit Hilfe der Funktionen "Gleich?" und "Ungleich?". Diese Funktionen werden im Modus "Elementsätze vergleichen" für Matrixeingänge ausgeführt und folgen denselben Regeln wie Array-Vergleiche.

Wenn einer numerischen Funktion, die mehrere Eingänge akzeptiert, eine Matrix und ein 2D-Array als Eingänge zugewiesen werden, gibt die Funktion in der Regel einen Matrixdatentyp aus. Die Funktion führt die Array-Operation aus, wenn der mit dem Anschlussfeld verbundene Ausgang kein 2D-Array ist. Verbinden Sie beispielsweise eine reelle Matrix und ein reelles 2D-Array mit der Divisionsfunktion, gibt die Funktion per Voreinstellung einen reellen Matrixausgang mit den Ergebnissen der Funktion aus. Wenn Sie eine reelle Matrix und ein komplexes 2D-Array verbinden, gibt die Funktion ein komplexes 2D-Array aus, da der Ausgang komplexe Elemente erfordert. Im zweiten Fall wird am Eingang der reellen Matrix ein Typumwandlungspunkt angezeigt, um anzugeben, dass die Funktion für diese Operation die reelle Matrix in ein komplexes 2D-Array umwandelt.

Standardgrößen und -werte von Matrizen

Es ist nicht möglich, die Größe einer Matrix auf eine feste Anzahl von Elementen zu begrenzen. Wenn Sie einer Matrix jedoch Standardwerte zuweisen, können Sie auch eine Standardgröße festlegen.

Matrizen sollten möglichst nicht größer als notwendig sein, da die Standarddaten für jedes Element mit dem VI gespeichert werden und somit Speicherplatz belegen.

Wenn Sie ein Matrixelement auf dem Frontpanel ablegen, stellt dieses eine leere Matrix dar. Jede Dimension ist 0 und die Matrixelemente sind ausgegraut. Ein Matrixelement auf dem Frontpanel hat zwei Standardwerte: einen Matrix-Standardwert (Fließkomma oder komplex) und einen Standardwert in jeder Zelle.

Der Matrix-Standardwert ist der gleiche wie bei allen anderen Frontpanel-Elementen. Er wird beim Laden eines VI und in einem SubVI verwendet, wenn das aufrufende VI keine Verbindung mit einem Wert herstellt.

Der skalare Standardwert wird zum Ausfüllen der Matrix verwendet, wenn diese vergrößert wird. Wenn Sie zum Beispiel den Matrixindex über den definierten Bereich der Matrix hinaus setzen und einen Wert in ein Element eingeben, der mehr als eine Zeile über den definierten Bereich der Matrix hinaus reicht, werden die Elemente zwischen dem vorherigen Ende der Matrix und dem hinzugefügten Element auf den Standardwert gesetzt.

Für Matrixfunktionen werden Werte außerhalb der ursprünglichen Matrix oder des 2D-Arrays angezeigt, wenn ungültige Operationen durchgeführt werden. Im Falle ungültiger Operationen hängt der Typ der Werte, die LabVIEW zurückgibt oder an äußeren Stellen ausfüllt, von den Daten und dem Elementtyp der ursprünglichen Matrix oder des 2D-Arrays ab. Die bei ungültigen Operationen ausgegebenen Werte unterscheiden sich vom Standardwert 0, der bei der Erweiterung einer Matrix angezeigt wird.