Vecteurs et matrices dans des diagrammes Stateflow
Les vecteurs et les matrices combinent des données scalaires en un seul objet de données multidimensionnel. Vous pouvez modifier des éléments particuliers ou appliquer des opérations arithmétiques à des vecteurs et matrices tout entiers. Pour plus d’informations, veuillez consulter Opérations pour les vecteurs et matrices dans Stateflow.
Définir des données matricielles et vectorielles
Ajoutez un objet de données à votre diagramme, tel que décrit dans Ajouter des données Stateflow.
Définissez la propriété Size pour l’objet de données comme les dimensions du vecteur ou de la matrice. Consultez Specify Size of Stateflow Data. Par exemple :
Pour spécifier un vecteur colonne 4 par 1, saisissez
4.Pour spécifier un vecteur ligne 1 par 4, saisissez
[1 4].Pour spécifier une matrice 3 par 3, saisissez
[3 3].
Définissez la propriété Initial value pour l’objet de données. Consultez Initial value.
Pour spécifier une valeur nulle pour tous les éléments du vecteur ou de la matrice, laissez le Initial value vide. Si vous ne spécifiez pas de valeur initiale, tous les éléments sont initialisés à 0.
Pour spécifier la même valeur pour tous les éléments du vecteur ou de la matrice, entrez une valeur scalaire. Tous les éléments sont initialisés à la valeur scalaire spécifiée.
Pour spécifier une valeur différente pour chaque élément du vecteur ou de la matrice, entrez un tableau de valeurs réelles. Par exemple :
Pour initialiser un vecteur colonne 4 par 1, vous pouvez saisir
[1; 2; 3; 4].Pour initialiser un vecteur ligne 1 par 4, vous pouvez saisir
[1 2 3 4].Pour initialiser une matrice 3 par 3, vous pouvez saisir
[1 2 3; 4 5 6; 7 8 9].
Définissez le nom, la portée, le type de base et d’autres propriétés pour l’objet de données, tel que décrit dans Set Data Properties.
Vous pouvez spécifier la taille et la valeur initiale d’un vecteur ou d’une matrice avec une expression. Les expressions peuvent contenir un mélange de valeurs numériques, de constantes, de paramètres, de variables, d’opérations arithmétiques et d’appels à des fonctions MATLAB®. Pour plus d’informations, veuillez consulter Specify Data Properties by Using MATLAB Expressions.
Où pouvez-vous utiliser les vecteurs et matrices ?
Vous pourrez définir les vecteurs et matrices aux niveaux suivants de la hiérarchie Stateflow® :
Diagrammes
Sous-diagrammes
États
Fonctions
Vous pouvez utiliser les vecteurs et matrices pour définir :
Les données d’entrée
Les données de sortie
Les données locales
Les entrées de fonction
Les sorties de fonction
Vous pouvez également utiliser les vecteurs et matrices comme arguments pour :
Les actions d’état
Les actions de transition
Les fonctions MATLAB
Les fonctions des tables de vérité
Les fonctions graphiques
Fonctions Simulink®
Les opérateurs de détection de changements
Règles pour les vecteurs et matrices dans les diagrammes Stateflow
Utiliser des opérandes de dimensions égales pour les opérations élément par élément
Si vous effectuez des opérations élément par élément sur des vecteurs ou des matrices de dimensions inégales, le diagramme génère une erreur de désadaptation de taille quand vous simulez le modèle. Pour plus d’informations, veuillez consulter Opérations pour les vecteurs et matrices dans Stateflow.
Ne pas définir des vecteurs et matrices avec le type de base ml
Le type de base ml ne supporte que des données scalaires. Si vous définissez un vecteur ou une matrice avec le type de base ml, le diagramme génère une erreur quand vous simulez le modèle. Pour plus d’informations, veuillez consulter ml Data Type.
Ne pas utiliser de nombres complexes pour définir les valeurs initiales des vecteurs et matrices
Si vous définissez un élément d’un vecteur ou d’une matrice avec un nombre complexe, le diagramme génère une erreur quand vous simulez le modèle. Vous pouvez définir les valeurs des vecteurs et des matrices comme des nombres complexes après initialisation. Pour plus d’informations, veuillez consulter Complex Data in Stateflow Charts.
Ne pas utiliser de vecteurs et matrices dans des opérateurs de logique temporelle
Puisque le temps est une quantité scalaire, vous ne pouvez pas utiliser un vecteur ou une matrice comme argument pour un opérateur de logique temporelle. Pour plus d’informations, veuillez consulter Control Chart Execution by Using Temporal Logic.