Syntaxe MathScript appropriée pour les applications temps réel (module MathScript RT)

Aide du module LabVIEW 2012 MathScript RT

Date d'édition : June 2012

Numéro de référence : 373123C-0114

»Afficher les infos sur le produit
Télécharger l'aide (Windows uniquement)

National Instruments a testé un sous-ensemble de la syntaxe possible dans MathScript LabVIEW et déterminé que cette syntaxe s'exécute typiquement dans une durée limitée lorsqu'elle est utilisée en suivant les exemples et les exigences mentionés dans cette rubrique en plus de certaines autres règles. S'il est important que votre application soit déterministe, utilisez cette syntaxe pour écrire les scripts et les fonctions définies par l'utilisateur qui seront utilisés dans des nœuds MathScript déployés dans une application temps réel.

Opérations générales

Le tableau suivant donne la syntaxe recommandée pour des opérations courantes dans MathScript.

Construction Grammaire Exigences Exemple
Opérations binaires a opérateur b opérateur est un opérateur numérique, comme +, -, .*, ./, .\, .^, <=, >=, <, >, == et ~=.

a et b sont des vecteurs ayant la même orientation et le même nombre d'éléments, ou des matrices de la même dimension. Ou, si une des entrées est un scalaire, l'autre est un scalaire, un vecteur ou une matrice.

a et b doivent avoir un type de données numérique.
[1, 2] + [3, 4];
a opérateur b opérateur est un opérateur logique, comme ==, ~=, &&, ||, & et |.

a et b sont des vecteurs ayant la même orientation et le même nombre d'éléments, ou des matrices de la même dimension. Ou, si une des entrées est un scalaire, l'autre est un scalaire, un vecteur ou une matrice.

a et b doivent être des valeurs booléennes.
[2, 3; 2, 2] ~= [3, 3; 2, 3];
a * b a et b doivent être des valeurs numériques à virgule flottante double-précision, complexes ou non. Une des entrées est un scalaire ou un vecteur, et l'autre est un scalaire, un vecteur ou une matrice. 2 * [2; 3];
Une des entrées est une matrice de type (n, m) et l'autre est un vecteur colonne m par 1. [1, 4; 2, 3; 0, 3] * [1; 2];
Une des entrées est un vecteur ligne 1 par n et l'autre est une matrice de type (n, m). [1, 2] * [1, 3, 5; 2, 4, 6];
Une des entrées est une matrice de type (m, n) et l'autre est une matrice de type (n, r). [0, 2; -1, 6; 3, 1; -2, 5] * [1, 3, 5; 2, 4, 6];
Opérations unaires -a, ~a, a', a.' a est une valeur de scalaire, de vecteur ou de matrice.

Pour -a, a doit être une ou plusieurs valeurs numériques. Pour ~a, a doit être une ou plusieurs valeurs booléennes. Pour a' et a.', a doit être une ou plusieurs valeurs numériques ou booléennes.
[1, 2]';

~[1, 0; 0, 1];
Valeurs constantes constante constante est une fonction MathScript qui produit des constantes, comme zeros, ones, true, false ou une fonction de la classe constants. pi;
constante(n) n est un nombre entier constant et constante est une fonction MathScript qui produit des constantes. a = true(3);
constante(n, m) n et m sont des nombres entiers constants et constante est une fonction MathScript qui produit des constantes. z = zeros(2, 3);
Expressions littérales expression littérale expression littérale est une constante chaîne ou une constante de n'importe quel type de données numérique. a = 4;

b = 'chaîne';
Définition de matrices [a1, a2, ..., an] Les valeurs de a doivent être des scalaires de n'importe quel type de données numérique ou des constantes telles que NaN ou Inf. Si a est un vecteur ou une matrice, indexez les valeurs scalaires à partir de a pour les utiliser dans la matrice. a = [1, 2, 0];

b = [0; Inf];

Les valeurs de a doivent être des scalaires de n'importe quel type de données numérique ou des constantes telles que NaN ou Inf. a = [1, 2, 0; 6, 1.5, 3];
Définition de gammes début:fin début et fin sont des nombres scalaires constants de type de données entier ou à virgule flottante, ou des nombres entiers ou à virgule flottante non constants si la longueur début:fin est fixe sur plusieurs exécutions de la ligne de script. b = 2:20;
début:pas:fin début, pas et fin sont des nombres scalaires constants de type de données entier ou à virgule flottante, ou des nombres entiers ou à virgule flottante non constants si la longueur début:pas:fin est fixe sur plusieurs exécutions de la ligne de script. b = 2:2:20;

Boucles et instructions

Le tableau suivant indique la syntaxe recommandée pour les boucles et les instructions que vous pouvez utiliser dans MathScript.

Construction Grammaire Exigences Exemple
Boucle For for itération = expression
liste_instructions
end
liste_instructions et expression, le cas échéant, sont composés d'opérations, de syntaxe et de fonctions intégrées recommandées par National Instruments dans cette rubrique et décrites dans les autres règles. expression doit avoir pour résultat un scalaire, un vecteur ou une matrice de valeurs numériques ou booléennes. for i = [3, 6, 9]
     a = sin(2*pi*i/10);
end
for itération = début:fin
liste_instructions
end
début et fin sont des nombres scalaires de type de données entier ou à virgule flottante. for i = 1:10
     a = sin(2*pi*i/10);
end
for itération = début:pas:fin
liste_instructions
end
début, pas et fin sont des nombres scalaires de type de données entier ou à virgule flottante. for i = 1:2:10
     a = sin(2*pi*i/10);
end
Instruction If-Else if expression
liste_instructions
[elseif expression
liste_instructions]
...
[else
liste_instructions]
end
expression doit avoir pour résultat une valeur booléenne. if b == 1
     c = 3;
else
     c = 4;
end
Boucle While while expression
liste_instructions
end
expression doit avoir pour résultat une valeur booléenne. while i < 10
     a = cos(2*pi*i/10);
     i = i + 1;
end

Opérations de matrices

Le tableau suivant indique la syntaxe recommandée pour indexer et remplacer des valeurs dans des vecteurs et des matrices. Les valeurs en italiques ne s'appliquent qu'aux opérations de remplacement. Spécifiez toujours les indices sous forme d'entiers signés 32 bits. Si vous spécifiez une gamme début:fin, définissez explicitement la gamme plutôt que de définir la gamme et d'assigner la valeur à une variable sur une autre ligne du script.

Dans MathScript, contrairement à dans LabVIEW, les vecteurs et les matrices sont basés sur zéro. Par conséquent, l'indice du premier élément d'un vecteur ou d'une matrice est 1. De plus, si vous spécifiez un seul indice pour un élément de matrice, plutôt qu'un indice ligne-colonne, les éléments sont ordonnés de façon linéaire par colonne. Par exemple, pour une matrice de type (2, 2), l'indice de l'élément dans la première ligne et la seconde colonne est 3.

Opération Grammaire Exemple
Renvoyer ou remplacer un élément d'un vecteur vecteur(indice) = scalaire Renvoyer le deuxième élément de b :

b = [4, -7, 0];
b(2);
Renvoyer ou remplacer une gamme d'éléments d'un vecteur vecteur(indice_début:indice:fin) = vecteur Remplacer les deuxième et troisième éléments de b :

a = zeros(1, 2);
b = ones(1, 4);
b(2:3) = a;
Renvoyer un vecteur colonne composé de tous les éléments d'un vecteur ligne vecteur:) a = ones(1, 4);
a(:);
Renvoyer un élément d'une matrice matrice(indice) Renvoyer l'élément dans la deuxième colonne et la première ligne de b :

b = [4, -2; 9, 5];
b(3);
Renvoyer ou remplacer un élément d'une matrice matrice(indice_colonne, indice_ligne) = scalaire Remplacer l'élément dans la deuxième colonne et la deuxième ligne de b :

a = 0;
b = ones(2);
b(2, 2) = a;
Renvoyer ou remplacer une colonne d'une matrice matrice(:, indice_colonne) = vecteur Renvoyer la deuxième colonne de b :

b = ones(2);
b(:, 2);
Renvoyer ou remplacer une ligne d'une matrice matrice(indice_ligne, :) = vecteur Remplacer la deuxième ligne de b :

a = zeros(1, 2);
b = ones(2);
b(2, :) = a;
Renvoyer une gamme d'éléments d'une matrice matrice(indice_début:indice_fin) Renvoyer la gamme du troisième au cinquième éléments de b :

b = [3, 7, -1; 4, 5, 0];
b(3:5);
Renvoyer une gamme d'éléments d'une colonne de matrice matrice(indice_début:indice_fin, indice_colonne) Renvoyer la gamme d'éléments du deuxième au quatrième éléments de la deuxième colonne de b:

b = [3, 7; -1, 4; 4, 5; 0, 9];
a = b(2:4, 2);
Renvoyer une gamme d'éléments d'une ligne de matrice matrice(indice_ligne, indice_début:indice_fin) Renvoyer la gamme d'éléments du deuxième au quatrième éléments de la deuxième ligne de b :

b = [3, 7, -1, 4; 4, 5, 0, 9];
a = b(2, 2:4);
Renvoyer ou remplacer une gamme de colonnes d'une matrice matrice(:, indice_colonne_début:indice_colonne_fin) = matrice Remplacer les première et deuxième colonnes de b :

a = zeros(3, 2);
b = ones(3);
b(:, 1:2) = a;
Renvoyer ou remplacer une gamme de lignes d'une matrice matrice(indice_ligne_début:indice_ligne_fin, :) = matrice Remplacer les première et deuxième lignes de b :

a = zeros(2, 3);
b = ones(3);
b(1:2, :) = a;
Renvoyer un vecteur colonne composé de tous les éléments d'une matrice matrice(:) a = ones(2);
a(:);

CET ARTICLE VOUS A-T-IL ÉTÉ UTILE ?

Pas utile