Variables dans l'environnement MATLAB. Variables simples et types de données de base dans MatLab

Comme tous les langages de programmation, MatLab offre la possibilité de travailler avec des variables. De plus, l'utilisateur n'a pas à se soucier des valeurs que prendra la variable (complexe, réelle ou uniquement entière). Pour attribuer, par exemple, la valeur de 1,45 à la variable z, il suffit d'écrire z = 1,45 sur la ligne de commande, et MatLab imprimera immédiatement la valeur de z :

» z = 1,45
z =
1.4500

Ici, le signe égal est utilisé comme opérateur d’affectation. Il n'est souvent pas très pratique d'obtenir le résultat après chaque mission. Par conséquent, MatLab offre la possibilité de terminer une instruction d'affectation par un point-virgule pour supprimer la sortie du résultat dans la fenêtre de commande. Le nom de la variable peut être n'importe quelle séquence de lettres et de chiffres sans espace, commençant par une lettre. Les lettres minuscules et majuscules sont différentes, par exemple MZ et mz sont deux variables différentes. Le nombre de caractères compris par MatLab dans un nom de variable est de 31.
Comme exercice d'utilisation de variables, trouvez la valeur de l'expression suivante :

Tapez la séquence de commandes ci-dessous (notez le point-virgule dans les deux premières instructions d'affectation pour empêcher les valeurs intermédiaires d'être imprimées à l'écran) :

"x = péché(1,3*pi)/log(3,4);
» y = carré(tan(2,75)/tanh(2,75));
» z= (x+y)/(x-y)
Z =
0,0243 - 0,9997i

La dernière instruction d'affectation n'est pas terminée par un point-virgule afin d'obtenir immédiatement la valeur de l'expression d'origine. Bien sûr, vous pouvez saisir la formule entière d’un coup et obtenir le même résultat :

"(sin(1.3*pi)/log(3.4)+sqrt(tan(2.75)/tanh(2.75)))/…
(sin(1.3*pi)/log(3.4)-sqrt(tan(2.75)/tanh(2.75))) ans =
0,0243 - 0,9997i

Remarquez à quel point la première entrée est plus compacte et plus claire que la seconde ! Dans la deuxième option, la formule ne tenait pas dans la fenêtre de commande sur une seule ligne et j'ai dû l'écrire sur deux lignes, pour lesquelles trois points ont été placés à la fin de la première ligne.

Pour saisir de longues formules ou commandes dans la ligne de commande, mettez trois points (d'affilée, sans espaces), appuyez sur la touche et continuez à taper la formule sur la ligne suivante. De cette façon, vous pouvez placer l'expression sur plusieurs lignes. MatLab évaluera l'expression entière ou exécutera la commande après avoir cliqué sur dans la dernière ligne (qui ne comporte pas trois points consécutifs).

MatLab mémorise les valeurs de toutes les variables définies lors d'une session. Si, après avoir entré l'exemple ci-dessus, d'autres calculs ont été effectués et qu'il devenait nécessaire d'afficher la valeur X, il vous suffit alors de taper X sur la ligne de commande et appuyez sur :

" x
-0.6611

Les variables définies ci-dessus peuvent être utilisées dans d'autres formules. Par exemple, si vous devez maintenant évaluer l'expression

,

puis entrez simplement la commande suivante :

» (x-y)^(3/2)
ans =
-0,8139 + 0,3547i

L’appel de fonctions dans MatLab est assez flexible. Par exemple, vous pouvez calculer e3,5 en appelant la fonction exp depuis la ligne de commande :

» exp(3.5)
ans =
33.1155

Une autre façon consiste à utiliser l'opérateur d'affectation :

» t = exp(3.5)
t =
33.1155

Supposons que certains calculs avec des variables soient terminés et que le reste devra être complété lors de la prochaine session de travail avec MatLab. Dans ce cas, vous devrez sauvegarder les variables définies dans l'environnement de production.

Afficher les variables

Lorsque vous travaillez avec un assez grand nombre de variables, vous devez savoir quelles variables ont déjà été utilisées et lesquelles ne le sont pas. Pour cela, utilisez la commande who, qui affiche une liste des variables utilisées dans la fenêtre de commande MatLab :

"OMS"
Vos variables sont :
al a2 a3

La commande whos permet d'obtenir des informations plus détaillées sur les variables sous forme de tableau :

Le total général est de 3 éléments utilisant 24 octets

La première colonne Nom comprend les noms des variables utilisées. Le contenu de la colonne Taille est essentiellement déterminé par le fonctionnement de MatLab. Programme MatLab Toutes les données sont présentées sous forme de tableaux. Les variables al, a2 et a3 sont des tableaux bidimensionnels un par un. Chaque variable occupe huit octets, comme indiqué dans la colonne Octets. Enfin, dans la dernière colonne Classe, le type de variables est indiqué - double tableau, c'est-à-dire un tableau de nombres à double précision. La ligne sous le tableau indique qu'il y a au total trois éléments, c'est-à-dire les variables occupent vingt-quatre octets. Il s'avère que représenter toutes les données dans MatLab sous forme de tableaux présente certains avantages.
Pour effacer toutes les variables de la mémoire, utilisez la commande clear. Si vous spécifiez une liste de variables (séparées par des espaces) dans les arguments, alors seules elles seront libérées de la mémoire, par exemple :

» clair al az
"OMS"
Vos variables sont :
a2

À partir de la version 6.0, un outil pratique est apparu pour visualiser les variables de l'environnement d'exploitation - la fenêtre Espace de travail, pour y accéder, vous devez activer le signet du même nom. Cette fenêtre contient un tableau similaire à celui affiché par la commande whos. Un double-clic sur la ligne correspondant à chaque variable affiche son contenu dans une fenêtre séparée, ce qui est particulièrement utile lorsque vous travaillez avec des tableaux. Barre d'outils de la fenêtre Espace de travail vous permet de supprimer les variables inutiles, de sauvegarder et d'ouvrir l'environnement de travail.

Bases de la programmation dans MatLab

Namestnikov S.M. / Recueil de conférences : Université technique d'État d'Oulianovsk, Oulianovsk. - 2011

Introduction

Chapitre 1. Structure du programme. Opérations mathématiques de base et types de données

1.1. Structure du programme MatLab

1.2. Variables simples et types de données de base dans MatLab

1.3. Opérations arithmétiques avec des variables simples

1.4. Fonctions mathématiques de base de MatLab

1.5. Vecteurs et matrices dans MatLab

1.6. Opérations sur les matrices et les vecteurs

1.7. Structures dans MatLab

1.8. Cellules dans MatLab

Chapitre 2. Instructions conditionnelles et boucles dans MatLab

2.1. Conditionnel si instruction

2.2. Instruction de commutation conditionnelle

2.3. Opérateur de boucle While

2.4. L'opérateur de boucle for

Chapitre 3. Travailler avec des graphiques dans MatLab

3.1. fonction de tracé

3.2. Conception de graphiques

3.3. Affichage de graphiques 3D

3.4. Affichage des bitmaps

Chapitre 4. Fonctions de programmation dans MatLab

4.1. Ordre de définition et d'appel des fonctions

4.2. Portée variable

Chapitre 5. Travailler avec des fichiers dans MatLab

5.1. fonctions de sauvegarde et de chargement

5.2. fonctions fwrite et fread

5.3. fonctions fscanf et fprintf

5.4. fonctions imread et imwrite

Introduction

Parmi les nombreux progiciels mathématiques existants, tels que Mathematica, MathCad, etc., le système MatLab occupe une position de leader grâce à son langage de programmation intégré pratique permettant de mettre en œuvre une grande variété d'algorithmes mathématiques et de problèmes de modélisation mathématique. De plus, ce package dispose en outre d'un outil de modélisation visuelle, Simulink, qui vous permet de créer et d'explorer des modèles mathématiques sans avoir recours à leur programmation.

Ce didacticiel examine le langage de programmation interne MatLab, qui offre la plus grande flexibilité, richesse de fonctionnalités et commodité pour résoudre et étudier des problèmes mathématiques. Lors de la présentation du matériel, la préférence a été donnée aux constructions linguistiques les plus simples, en étudiant lesquelles peuvent créer les algorithmes mathématiques les plus divers et non triviaux.

Chapitre 1. Structure du programme. Opérations mathématiques de base et types de données

La première étape vers la création d'algorithmes mathématiques consiste à étudier la structure du programme et l'ensemble des opérations mathématiques disponibles pour le langage de programmation. En particulier, ce chapitre examinera les opérations et fonctions mathématiques du package MatLab liées au traitement des variables scalaires et matricielles.



Structure du programme MatLab

En règle générale, chaque programme dans MatLab est une fonction et commence par le mot-clé function, suivi de son nom, séparé par un espace. Par exemple,

fonction Lab1
une = 5 ;
b = 2 ;
c = a*b;

Ce programme est contenu dans une fonction appelée Lab1 et calcule le produit de deux variables a et b. Lors de l'enregistrement d'un programme dans un fichier m, il est recommandé de spécifier le nom de fichier qui correspond au nom de la fonction, c'est-à-dire dans ce cas - Lab1.

Il convient de noter que de nombreuses fonctions supplémentaires peuvent être spécifiées dans un seul fichier m. Pour ce faire, écrivez simplement un autre mot-clé de fonction à la fin de la liste principale du programme et définissez son nom, par exemple :

fonction Lab1
une = 5 ;
b = 2 ;
c = a*b;
out_c(c); % fonction appelle out_c()

fonction out_c(arg_c) % définition de la fonction out_c()
disp(arg_c);

Notez que la fonction out_c() peut être appelée dans le programme principal avant d'être définie. Il s'agit d'une fonctionnalité du langage MatLab qui permet au programmeur de ne pas se soucier de la séquence de spécification des fonctions. Dans l'exemple donné, la fonction out_c() a un paramètre d'entrée appelé arg_c, qui est affiché à l'écran (dans la fenêtre de commande MatLab) à l'aide de la fonction disp() intégrée. En conséquence, lorsque le programme ci-dessus est exécuté, la valeur de la variable c sera affichée dans la fenêtre de commande MatLab.

Des fonctions supplémentaires peuvent également être fournies dans des fichiers m séparés. Par exemple, s'il est nécessaire de décrire une fonction dans un fichier m et de l'appeler dans un autre, cela peut être implémenté comme suit.

1er fichier (Lab1.m)

Lorsque la fonction Lab1 est exécutée, MatLab appellera la fonction square à partir du fichier square.m. Cela se fera automatiquement, car... les fonctions intégrées du langage MatLab sont également définies et appelées à partir de fichiers dont les noms correspondent généralement aux noms des fonctions appelées. Notez également que la fonction square() prend non seulement deux arguments a et b, mais renvoie également leur produit en utilisant la variable res. La syntaxe présentée doit être utilisée chaque fois que le résultat d'un calcul doit être renvoyé au programme principal. Le quatrième chapitre de ce manuel décrit plus en détail la construction d'appels de fonctions pour implémenter divers algorithmes.

Variables simples et types de données de base dans MatLab

La création d'un programme commence généralement par la définition des variables et la manière de représenter les données. Par conséquent, afin d'organiser correctement la description des données du programme, vous devez savoir comment définir des variables dans MatLab et quels types de variables sont possibles.

Le type de données le plus simple et le plus courant est un nombre. Dans MatLab, un nombre est stocké dans une variable qui porte un nom unique, par exemple :

définit une variable nommée a et lui attribue la valeur 5. Par défaut, la variable a est réelle (type double), c'est-à-dire peut prendre des valeurs fractionnaires, par exemple,

définit la valeur de la variable a à -7,8. Vous pouvez modifier le type d'une variable en spécifiant le type du numéro attribué à l'aide du mot-clé approprié, par exemple :

attribuera le nombre 5 comme valeur entière de 16 bits. À la suite de cette opération, le type de variable a correspondra à int16.

Les types de données disponibles dans MatLab sont présentés dans le tableau. 1.1.

Tableau 1.1. Types de données de base dans MatLab

Le type par défaut est double, qui a la plus grande précision dans la représentation d'un nombre réel et est donc un type universel. Toutefois, si vous devez économiser de la mémoire sur votre ordinateur, vous pouvez spécifier vous-même le type souhaité.

La dernière chose que vous devez savoir lors de la définition de variables est la règle permettant de déterminer leurs noms. Dans MatLab, les noms de variables ne peuvent être spécifiés qu'en lettres latines, en chiffres et avec le symbole « _ ». De plus, le premier caractère du nom doit correspondre à une lettre de l’alphabet latin. Il convient également de noter que les noms

argument = 1 ;
Arg = 2 ;
ARG = 3 ;

ce sont trois noms différents, c'est-à-dire trois variables différentes avec respectivement les valeurs 1, 2 et 3. Cet exemple montre que MatLab est sensible à la casse dans les noms de variables.

Lors de la programmation, il est préférable de spécifier des noms de variables significatifs qui vous aideront à comprendre quelles données elles représentent. Cela évite toute confusion lors de la création de programmes volumineux.

Dans MATLAB, il existe un type spécial de variable dont la valeur, à l'exception de la variable ans, ne peut pas être modifiée. Ces variables sont appelées variables système. Ils sont conçus pour des calculs plus efficaces, ainsi que pour que le système affiche des messages lorsque l'utilisateur définit le problème de manière incorrecte. Le tableau fournit une liste des variables système utilisées dans MATLAB.

Notations de variables système MATLAB

Nombres complexes

Dans le système MATLAB, les nombres complexes, comme les nombres réels, sont de type double. Par conséquent, il n'est pas nécessaire de marquer séparément indiquant le travail avec des nombres complexes. L'enregistrement s'effectue comme suit : 3+7i ; -7,1+0,831E+2*i ; 5-3j. L'exemple montre que pour désigner l'unité imaginaire, vous pouvez utiliser l'une des lettres : i ou j. Par défaut MATLAB utilise la lettre i .

Voici un exemple de calcul de la racine carrée de -1

>> b=sqrt(a)

Pour les nombres complexes, vous pouvez utiliser les mêmes fonctions que pour les nombres réels, sauf dans les cas évidents où une fonction ne peut pas avoir d'argument complexe. Par exemple, la fonction rem (x,y) calcule le reste de x divisé par y, donc utiliser un nombre complexe comme argument produira une erreur :

>> une=2+3*je;

>> rem(a,3)

Erreur lors de l'utilisation de ==> rem

Les arguments doivent être réels.

Parallèlement à cela, il existe également un certain nombre de fonctions qui s'appliquent uniquement aux variables complexes.

Fonctions de variables complexes

Par exemple:

>> abdominaux (2+3i)

>> conj(2+3i)

2.0000 - 3.0000i

>>isréal(x)

Dans le dernier exemple, la fonction isreal a renvoyé le nombre 0, car la variable x n'est pas valide.

5. Visibilité des noms de variables et des noms de fonctions.

Variables locales et globales. La fonction possède son propre espace variable, isolé de l'espace de travail MATLAB. Par conséquent, si avant d'appeler la fonction M dans la fenêtre de commande MATLAB, une variable avec un nom, par exemple varName1, a été définie, alors vous ne pouvez pas compter sur le fait que la variable dans le corps de la fonction portant le même nom a déjà une certaine valeur. Il s’agit d’une variable complètement différente (bien qu’elle porte le même nom varName1) et se trouve dans la mémoire de la machine dans une zone mémoire différente.

Les variables utilisées dans le corps d'une fonction M et qui ne coïncident pas avec les noms des paramètres formels de cette fonction sont appelées locales.

D'une autre manière, ils disent qu'ils ne sont visibles que dans la fonction M. De l'extérieur, ils ne sont pas visibles (inaccessibles). Les variables définies dans la fenêtre de commande MATLAB ne sont pas visibles à l'intérieur d'une fonction : elles sont externes à la fonction et ne sont pas visibles à l'intérieur de celle-ci.

De même, les variables locales au sein d’une fonction ne sont pas visibles au sein d’une autre fonction M.

Pour qu'un espace de travail MATLAB et plusieurs fonctions M partagent une variable portant un nom donné, celle-ci doit être déclarée globale à l'aide du mot-clé global. Par exemple, la variable glVarS impliquée dans les calculs dans l'espace de travail et dans la fonction FuncWithGlobVar est partout la même variable (un seul emplacement mémoire) - elle peut donc être utilisée dans la fonction sans lui attribuer de valeur supplémentaire :

Étant donné que les variables globales ont une portée « globale », afin de ne pas la redéfinir accidentellement (par erreur) quelque part, il est conseillé de donner à ces variables des noms plus mnémoniques (plus longs et plus significatifs).

Examinons maintenant la question de la visibilité des noms de fonctions. Si nous avons enregistré une fonction avec un certain nom dans un fichier avec le même nom et la même extension m, et en plus, si le système MATLAB connaît le chemin d'accès à ce fichier sur le disque, alors cette fonction peut être appelée à la fois depuis la fenêtre de commande et des autres fonctions.

Cependant, dans le texte d'une fonction M, vous pouvez placer les définitions de plusieurs fonctions, et une seule d'entre elles peut avoir le même nom que le nom du fichier. C'est cette fonction qui sera visible depuis la fenêtre de commande et d'autres fonctions. Toutes les autres fonctions seront internes – elles ne pourront être appelées que par des fonctions du même fichier.

Par exemple, si le fichier ManyFunc.m contient le texte suivant

fonction ret1 = ManyFunc(x1, x2)

ret1 = x1 .* x2 + AutreFunc(x1)

fonction ret2 = AnotherFunc(y)

ret2 = y .* y + 2 * y + 3;

composé de définitions de deux fonctions nommées ManyFunc et AnotherFunc, alors seule la fonction ManyFunc peut être appelée en externe. D'une autre manière, nous pouvons dire que seules les fonctions dont les noms correspondent aux noms des fichiers M sont visibles de l'extérieur.

Ode23("lotka2",,); Les versions bidimensionnelles de ces tableaux sont appelées matrices, d'où MATLAB tire son nom MATRIX LAB. Les tableaux de cellules permettent à Cell (17 "hello" eye (2)) de combiner des données associées, éventuellement de différentes tailles, en une seule structure. Opération de stockage (le plus souvent utilisée avec Uint8 PPP Image Processing Toolbox) UserObject Tableaux vides définis par l'utilisateur. Les premières versions de MATLAB autorisaient une forme unique d'un tableau vide de taille 0x0, noté . MATLAB prend en charge les tableaux dont une, mais pas toutes, dimensions est égale à zéro, c'est-à-dire des tableaux dont les dimensions sont 1x0, 10x0x20 ou définis comme vides. Les crochets continuent de désigner le tableau 0x0. Des tableaux vides d'autres tailles peuvent être créés à l'aide des fonctions zéros, uns, rand ou eye. Par exemple, pour former un tableau vide de taille 0x5, vous pouvez utiliser l'opérateur d'affectation E = zéros(0,5). Opérateurs arithmétiques. Lorsque vous travaillez avec un tableau de nombres, les niveaux de priorité suivants parmi les opérations arithmétiques sont établis : niveau 1 : transposition par élément (."), exponentiation par élément (.^), transposition matricielle conjuguée hermitienne ("), exponentiation matricielle ( ^);< Меньше <= Меньше или равно >Supérieur à > = Supérieur ou égal à == Égal à identique ~ = Différent de l'égalité Les opérateurs relationnels effectuent une comparaison élément par élément de deux tableaux de dimensions égales. Pour les vecteurs et les tableaux rectangulaires, les deux opérandes doivent avoir la même taille, sauf si l'un d'eux est un scalaire. Dans ce cas, MATLAB compare le scalaire avec chaque élément de l'autre opérande. Les positions où cette relation est vraie reçoivent la valeur 1, où faux - 0. Les opérateurs relationnels sont généralement utilisés pour modifier la séquence d'exécution des instructions du programme. Par conséquent, ils sont le plus souvent utilisés dans le corps des instructions if, for, while et switch.

Des questions ?

Message

Envoyer