Vektoren und Matrizen in Stateflow-Diagrammen
Vektoren und Matrizen kombinieren skalare Daten zu einem einzigen mehrdimensionalen Datenobjekt. Sie können einzelne Elemente ändern oder Rechenoperationen mit ganzen Vektoren und Matrizen durchführen. Weitere Informationen finden Sie unter Operationen für Vektoren und Matrizen in Stateflow.
Definieren von Vektor- und Matrixdaten
Fügen Sie Ihrem Diagramm ein Datenobjekt hinzu, wie unter Hinzufügen von Stateflow-Daten beschrieben.
Legen Sie die Eigenschaft Size für das Datenobjekt als Dimensionen des Vektors oder der Matrix fest. Siehe Specify Size of Stateflow Data. Beispiel:
Um einen 4-mal-1-Spaltenvektor anzugeben, geben Sie
4
ein.Um einen 1-mal-4-Zeilenvektor anzugeben, geben Sie
[1 4]
ein.Um eine 3-mal-3-Matrix anzugeben, geben Sie
[3 3]
ein.
Legen Sie die Eigenschaft Initial value für das Datenobjekt fest. Siehe Initial value.
Um für alle Elemente des Vektors oder der Matrix den Wert Null festzulegen, lassen Sie den Initial value leer. Wenn Sie keinen Anfangswert angeben, werden alle Elemente auf 0 initialisiert.
Um für alle Elemente des Vektors oder der Matrix denselben Wert festzulegen, geben Sie einen Skalarwert ein. Alle Elemente werden auf den von Ihnen angegebenen Skalarwert initialisiert.
Um für jedes Element des Vektors oder der Matrix einen anderen Wert festzulegen, geben Sie ein Array mit realen Werten ein. Beispiel:
Um einen 4-mal-1-Spaltenvektor zu initialisieren, können Sie
[1; 2; 3; 4]
eingeben.Um einen 1-mal-4-Zeilenvektor zu initialisieren, können Sie
[1 2 3 4]
eingeben.Um eine 3-mal-3-Matrix zu initialisieren, können Sie
[1 2 3; 4 5 6; 7 8 9]
eingeben.
Legen Sie den Namen, den Umfang, den Basistyp und andere Eigenschaften für das Datenobjekt fest, wie unter Set Data Properties beschrieben.
Sie können die Größe und den Anfangswert eines Vektors oder einer Matrix mithilfe eines Ausdrucks angeben. Ausdrücke können eine Mischung aus numerischen Werten, Konstanten, Parametern, Variablen, arithmetischen Operationen und Aufrufen von MATLAB®-Funktionen enthalten. Weitere Informationen finden Sie unter Specify Data Properties by Using MATLAB Expressions.
Wo Sie Vektoren und Matrizen verwenden können
Sie können Vektoren und Matrizen auf diesen Ebenen der Stateflow®-Hierarchie definieren:
Diagramme
Unterdiagramme
Zustände
Funktionen
Sie können mit Vektoren und Matrizen Folgendes definieren:
Eingabedaten
Ausgabedaten
Lokale Daten
Funktionseingaben
Funktionsausgaben
Sie können auch Vektoren und Matrizen als Argumente verwenden für:
Zustandsaktionen
Übergangsaktionen
MATLAB-Funktionen
Wahrheitstabellenfunktionen
Grafikfunktionen
Simulink®-Funktionen
Operatoren zur Erkennung von Änderungen
Regeln für Vektoren und Matrizen in Stateflow-Diagrammen
Verwenden von Operanden gleicher Dimensionen für elementweise Operationen
Wenn Sie elementweise Operationen an Vektoren oder Matrizen mit ungleichen Dimensionen durchführen, generiert das Diagramm bei der Simulation des Modells einen Größenkonfliktfehler. Weitere Informationen finden Sie unter Operationen für Vektoren und Matrizen in Stateflow.
Definieren von Vektoren und Matrizen mit dem Basistyp ml
Der Basistyp ml
unterstützt nur skalare Daten. Wenn Sie einen Vektor oder eine Matrix mit dem Basistyp ml
definieren, generiert das Diagramm einen Fehler, wenn Sie das Modell simulieren. Weitere Informationen finden Sie unter ml Data Type.
Vermeiden der Verwendung komplexer Zahlen zur Festlegung der Anfangswerte von Vektoren und Matrizen
Wenn Sie ein Element eines Vektors oder einer Matrix mit einer komplexen Zahl initialisieren, generiert das Diagramm einen Fehler, wenn Sie das Modell simulieren. Sie können die Werte von Vektoren und Matrizen nach der Initialisierung auf komplexe Zahlen setzen. Weitere Informationen finden Sie unter Complex Data in Stateflow Charts.
Vermeiden der Verwendung von Vektoren und Matrizen in Operatoren der temporalen Logik
Da Zeit eine skalare Größe ist, können Sie keinen Vektor oder keine Matrix als Argument für einen temporalen Logikoperator verwenden. Weitere Informationen finden Sie unter Ausführung von Steuerungsdiagrammen mithilfe der zeitlichen Logik.