Matlab découvre le type d'une variable. Variables dans l'environnement MATLAB. Fonctions de variables complexes

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 appelé 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 nommé arg_c, qui est imprimé à 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.

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.

L'un des canaux de transmission des informations de la fenêtre de commande MATLAB vers une fonction M et d'une fonction à une autre est le mécanisme des paramètres de fonction. Un autre mécanisme de ce type est celui des variables globales.

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 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.

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 ( ^);< Меньше <= Меньше или равно >Les fonctions restantes doivent être appelées par cette fonction et d'autres fonctions internes.

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.
Les opérateurs relationnels sont toujours exécutés élément par élément.
Exemple. Comparons deux tableaux en utilisant la condition A

Jusqu’à présent, nous nous sommes familiarisés avec quatre types de données différents.
Programmes MATLAB : nombres à virgule flottante, chaînes, caractères expressions et fonctions. Au cours d'une longue session de programme MATLAB, il peut être difficile de se souvenir des noms et des types de toutes les variables que vous avez définies.
Vous pouvez entrer la commande
qui est
pour consulter la liste générale des noms et expressions et fonctions. types ou classes de vos variables actuellement définies. Mais avant ça
comment faire cela, effectuez les affectations a = pi, b = "pi", c = ("pi"), puis

entrer
. Vous trouverez ci-dessous le résultat des résultats de la session MATLAB,
présentés dans ce chapitre.
Les variables A, X, Y, Z, a et d se sont vu attribuer des valeurs numériques et
désigné comme « double tableau ». Cela signifie qu'il s'agit de tableaux de nombres avec
double précision ; dans ce cas, les tableaux a et d ont une taille de 1x1, c'est-à-dire
sont des scalaires. La colonne Octets indique la quantité d'ordinateur
Chaque variable occupe de la mémoire. La variable ans est également numérique,
fonctions et deux tableaux d'objets intégrés correspondant aux paires
fonctions anonymes et fonctions intégrées.
La commande whos affiche des informations sur toutes les variables spécifiées, mais ceci
la commande n'affiche pas les valeurs des variables. Pour voir la valeur d'une variable,
Entrez simplement le nom de la variable et appuyez sur la touche Fnterl.

Les commandes du programme MATLAB nécessitent des classes spécifiques lorsqu'elles sont saisies
données, et il est très important de savoir quel type de données nécessite une commande donnée ;
le texte d'aide de la commande contient généralement la ou les classes qui
obligatoire lors de l’entrée. Une classe d'entrée invalide entraîne généralement
messages d'erreur ou résultats inattendus. Par exemple, entrez la commande sin("pi ") pour voir quel est le résultat de l'ajout d'une ligne à
une fonction qui n'accepte pas les chaînes.
Pour effacer toutes les variables définies par Matlab, entrez clear ou clear all.
Vous pouvez également saisir, par exemple, clear x y pour effacer uniquement
variables x et y.

Puc. 2.2. Bureau avec fenêtre Espace de travail

En règle générale, vous devez effacer les variables avant de commencer de nouveaux calculs.
Sinon, les valeurs des calculs précédents pourraient accidentellement
entrez dans de nouveaux. La fenêtre Espace de travail fournit
une alternative graphique à la commande whos. Vous pouvez activer cette fenêtre en cliquant sur
en cliquant sur l'onglet Espace de travail dans la fenêtre Répertoire actuel ou en entrant la commande espace de travail sur la ligne de commande. Sur la fig. 2.2 montré
Un bureau contenant une fenêtre de commande et un espace de travail
(espace de travail) contiennent les mêmes informations que celles affichées
plus haut.

Par conséquent, de ce qui précède, nous pouvons conclure que vous devez examiner de nombreuses informations supplémentaires et alternatives !

1. ÉLÉMENTS DU LANGAGE M MATLAB

Les éléments du langage M utilisés pour contrôler le processus de calcul dans MATLAB sont des constantes, des variables, des fonctions, des commandes et des structures de contrôle. Ces éléments, éventuellement dans diverses connexions utilisant des connecteurs spéciaux, sont utilisés à la fois en ligne de commande et dans les programmes.

1.1. CONSTANTES BMATLAB

Une constante dans MATLAB représente des informations qui ne changent pas tout au long de la session de communication. Les constantes peuvent être définies par l'utilisateur (définies par l'utilisateur) ou définies par le système (définies par le système). Les constantes utilisateur sont spécifiées par l'utilisateur et sont utilisées une seule fois - au moment où elles sont mentionnées dans la ligne de commande exécutable. Par exemple, 16, -38.654, -1.e-23, 1+2i, "Ceci est une constante de symbole".

Les constantes système sont définies de manière permanente dans le système et ont des désignations spéciales par lesquelles elles sont désignées, par exemple pi (=3,1416), eps (=2,2204e-016), realmin (=2,2251e-308), realmax (=1,7977). e+308 ), je, j (jºi).

1.2. VARIABLES DANSMATLAB

Une variable dans MATLAB est définie par identifiant, type, emplacement dans la mémoire de l'ordinateur. Pour définir une variable dans MATLAB, vous devez sélectionner l'identifiant (nom) de la variable (commence par une lettre latine, puis des lettres latines, des chiffres, des caractères spéciaux) et utiliser cette variable dans une instruction de ligne de commande qui définit la valeur du variable (affectation simple, référence à une certaine fonction de variable, etc.).

  1. Variables numériques : nombres ordinaires (réels) ou complexes, vecteurs, matrices et tableaux multidimensionnels. 8 octets sont alloués pour un nombre réel, 16 pour un nombre complexe. Les nombres entiers et réels ne diffèrent pas.

A) nombres réels

A=2 A=2,0 B=-143,298 C=1,23e-2

B) nombres complexes

Q=1+3i r=-4,6-7,45i S=2+5j

réel(Q) – substance.partie d'un nombre complexe,

imag(Q) – partie imaginaire du nombre complexe,

abs(Q) – valeur absolue du nombre complexe,

conj(Q) – nombre complexe conjugué,

angle(Q) – valeur de la phase (angle) du nombre complexe en radians.

C) vecteurs

vecteurs de rangée

a=1:3:10 b= c=espacelin(13,53,5)

vecteurs de colonne

aa=a' bb= cc= linspace(13,53,5)' dd=(15:45)'

pour les vecteurs à composantes complexes : si y est un vecteur complexe, alors y.' est un vecteur colonne avec les mêmes composantes, et y' est un vecteur colonne dont les composantes sont des nombres complexes conjugués.

D) matrices : M(i,j) – élément de la i –ème ligne et de la j –ème colonne ; M(k) est le kième élément de la matrice étendu en colonne.

A= ---à 1 2

A(2,2) (=4) A(3) (=2) -à A = (1 3 2 4)

A(3,4)=10 ---à 1 2 0 0

taille(A) (=) =taille(A) (m=3, n=4)

A=A(:) -à s'étendre en colonne – la matrice devient un vecteur !

reshape(A,3,4) -à transforme le vecteur en une matrice 3x4

A(,:)= -à supprime la 1ère et la dernière ligne de la matrice

A(:,)= à supprime toutes les colonnes sauf la dernière

Quelques matrices spéciales :

eye(m,n) - les uns sur la diagonale principale, les autres sont des zéros (eye(m) - matrice d'identité carrée mxm)

les uns (m, n) – matrice des uns

zéros (m, n) – matrice de zéros

rand(m,n) – matrice mxn remplie de nombres aléatoires de 0 à 1

C=round(1+100*rand(10,10)) – une matrice 10x10 remplie d'entiers aléatoires de 1 à 100.

Opérations simples avec des matrices :

diag(A) – vecteur d'éléments situés sur la diagonale principale de la matrice A,

diag(diag(A)) est une matrice diagonale carrée avec des éléments diagonaux, comme A, et des zéros.

triu(A) tril(A) – une matrice avec les parties supérieure ou inférieure de A, complétée par des zéros.

  1. Variables de caractères

cvb=’Moscou est la capitale de la Russie’

La ligne de caractères est limitée à des apostrophes simples (sur la touche avec la lettre russe « e ») et est surlignée en couleur.

Chaque caractère occupe 2 octets et est traité comme un élément distinct du vecteur de ligne de caractères. Ainsi, si nous spécifions l’opération de transposition cvb’ , nous obtenons un vecteur colonne de 31 éléments.

Vous pouvez convertir des variables symboliques en nombres et vice versa.

Ils sont généralement utilisés pour afficher des résultats, des graphiques, des étiquettes et des messages.

Contrôle des variables.

Méthode 1 – dans la fenêtre Espace de travail

La méthode 2 - la commande who - donne une liste de variables définies à un instant donné.

Méthode 3 - commande whos - donne des informations plus complètes sur les variables (Name Size Bytes Class)

Nettoyage de la mémoire.

clear – effacement complet de toutes les variables (ou effacement des variables)

clear var1,var2,… - effacement des variables individuelles var1,var2,….

1.3. FONCTIONS DANSMATLAB

Les fonctions dans MATLAB sont des programmes qui effectuent certaines opérations courantes sur les données. Pour effectuer ces opérations et obtenir les résultats souhaités, il suffit de préciser le nom de la fonction et, éventuellement, de préciser quelques données initiales. Ainsi, le concept de fonction ici (comme dans tout autre langage) est associé à 3 concepts : le nom de la fonction, un ensemble de données d'entrée (varargin) et un ensemble de données de sortie (varargout). De plus, les notions de nombre de paramètres d'entrée (nargin) et de nombre de paramètres de sortie (nargout) sont définies.

Les fonctions dans MATLAB sont divisées en définies par l'utilisateur (définies, développées par l'utilisateur) et système (définies, définies dans le système, ne nécessitant pas de programmation). Nous verrons comment créer des fonctions personnalisées lorsque nous aborderons des sujets de programmation. Après création et débogage, une fonction utilisateur n’est pas différente d’une fonction système.

Les fonctions système sont divisées en fonctions intégrées et fonctions de bibliothèque. Les fonctions de la bibliothèque sont stockées dans le système sous forme de programmes en langage M, écrits dans des fichiers portant le même nom que le nom de la fonction et portant l'extension *.m. Les textes de ces programmes sont consultables par les utilisateurs (le répertoire \toolbox\matlab\ dans l'emplacement d'installation de MATLAB). Par exemple, vous pouvez ouvrir et visualiser un fichier m avec une fonction permettant de calculer la valeur du logarithme décimal (\toolbox\matlab\elfun\log10.m). Une fois exécutées, les instructions de ces programmes sont d'abord traduites en instructions provenant du système exécutif de l'ordinateur (interprétées), puis exécutées. Les fonctions intégrées sont stockées dans le système sous forme compilée, ne nécessitent pas de traduction et, grâce à cela, sont exécutées plus rapidement que celles de la bibliothèque. Dans le répertoire système de ces fonctions, sont stockés des fichiers portant des noms similaires aux fichiers de bibliothèque, mais contenant uniquement des commentaires sur l'utilisation des fonctions. Par exemple, vous pouvez ouvrir un fichier lié à la fonction de calcul des exposants (\toolbox\matlab\elfun\exp.m).

1.4. EXPRESSIONS ENMATLAB

Une expression est une construction de langage qui comprend des éléments de langage (constantes, variables, fonctions) connectés les uns aux autres à l'aide de caractères de connexion qui spécifient les opérations effectuées lors du calcul de la valeur de l'expression. Il existe des expressions numériques (Nexpression), symboliques (CExpression) et logiques (Lexpression) selon le résultat obtenu après avoir effectué les opérations incluses dans l'expression.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :