Matlab – Fonctions, boucles et conditions

Demande d’aide:

Les deux commandes les plus utilisées par Matlab pour demander l’aide:

help NomFonction % NomFonction: la commande souhaitée 
lookfor keyword % keyword : la mot clé recherché


Exemple de calcul des integrales avec la méthodes des trapèzes:

\int ^{10}_{0}\left(\frac{1}{2}\sqrt{x} \ +x\ sin( x)\right) \ dx

x = 0:0.5:10; y = 0.5 * sqrt(x) + x .* sin(x);
integral1 = trapz(x,y)
integral1 =
18.1655

Ecrire des fonctions définies par l’utilisateur

Les fonctions sont des fichiers m qui peuvent être exécutés en spécifiant certaines entrées et fournir certaines sorties souhaitées.
Le code indiquant au Matlab qu’un fichier m est :

function out1=NomFonction (in1)
function out1=NomFonction (in1,in2,in3)
function [out1,out2]=NomFonction (in1,in2)

Vous devez indiquer cette commande au début du fichier m et vous devez enregistrer le fichier m avec un nom de fichier identique au nom de la fonction.
Exemple 1:
Une fonction qui prend un tableau d’entrée et renvoie la somme et le produit de ses éléments en tant que sorties:

function [a,b]=somprod(tab)
a=sum(tab);
b=prod(tab);

La fonction sumprod (.) Peut être appelée depuis la fenêtre de commande ou un .m file:
[x,y]=somprod(c)

Exemple 2:
L’aire A d’un triangle dont la longueur des côtés a, b et c est donnée par:
A=\sqrt{s( s-a)( s-b)( s-c) \ } \ avec\ s=( a+b+c) /2

function [A] = area(a,b,c)
s = (a+b+c)/2;
A = sqrt(s*(s-a)*(s-b)*(s-c));

Pour évaluer l’aire d’un triangle de côté de longueur 10, 15, 20:

Area = area(10,15,20)
Area =
72.6184

Les conditions:

if (Condition_1)
Commandes Matlab
elseif (Condition_2)
Commandes Matlab
elseif (Condition_3)
Commandes Matlab
else
Commandes Matlab
end

Exemple:

Résolution des équations du 2ème degré en R: ax^{2} +bx+c=0

% trinome.m
disp('Solve ax²+bx+c=0');
choix='Y';
while (choix~='N' & choix~='n')
a=input('a=? ');
b=input('b=? ');
c=input('c=? ');
delta=b*b-4*a*c;
if (delta<0),
disp('No solution');
end
if (delta==0),
disp('1 solution:');
racine=-b/(2*a);
disp(racine);
end
if (delta>0),
disp('2 solutions');
racine1=(-b+sqrt(delta))/(2*a);
racine2=(-b-sqrt(delta))/(2*a);
disp(racine1);
disp(racine2); 
end
choix=input('Another equation (Y/N)? ','s');
end

Résolution des équations du 2ème degré en C

% trinome1.m
disp('Solve ax²+bx+c=0');
p(1)=input('a=? ');
p(2)=input('b=? ');
p(3)=input('c=? ');
disp('Solutions :');
disp(roots(p)); 

Les Boucles

for i=Index_Array
Commandes Matlab
end

Exemple:

x = -1:.05:1;
for n = 1:8
subplot(4,2,n);
plot(x,sin(n*pi*x));
end

Boucle While:

while (condition)
Commandes Matlab
end

Commande SWITCH

Basculer entre plusieurs cas en fonction de l’expression.
La forme générale de l’instruction SWITCH est:
SWITCH switch_expr
CASE case_expr,
statement, …, statement
CASE {case_expr1, case_expr2, case_expr3, …}
statement, …, statement

OTHERWISE
statement, …, statement
END