à l'aide je suis nulle en programmation
lyndalouis
Messages postés
18
Statut
Membre
-
JulienJust Messages postés 164 Statut Membre -
JulienJust Messages postés 164 Statut Membre -
bonjour
svp si j'ai plusieurs fonctions (fichier.m) et je veux faire appel à celles ci pour les executer comment je doit ecrire?
merci
svp si j'ai plusieurs fonctions (fichier.m) et je veux faire appel à celles ci pour les executer comment je doit ecrire?
merci
4 réponses
-
Bonjour,
Admettons que tu crées une fonction sous un fichier .m, il faut que ton fichier ait le même nom que la fonction. Exemple: je crée la fonction ADDITION (function Z = ADDITION(X,Y)) que j'enregistre dans le fichier ADDITION.m .
Ensuite pour utiliser cette fonction dans un autre .m il suffit de taper son nom tout simplement mais en veillant au préalable que le .m de la fonction et le .m de mon programme principal soient dans le même dossier.
Exemple: ADDITION.m et PROGRAMME.m sont dans le même dossier. Et j'utilise la fonction ADDITION dans le fichier PROGRAMME en l'appelant comme je l'ai défini (Z = ADDITION(X,Y) où X et Y sont définis).
Est-ce que cela t'aide ?
Cdlt -
merci beaucoup mais il signale tjrs des erreurs
donc voila
j'ai un système d'equation diff. jl'ai résolu avc la méthode de Runge kutta 4 donc j'ai trois fonction M-file
voila le fichier ou je doit executer :
global C1 C2 C3 C4 B
C1= 3E-5; C2=0.606; C3= 0.009; C4= 3.333; B=3E-10;
r_m0 = 10E10 ;
r_f0=10E-11;
h=0.001;
e0=0;
ef=1;
[e,r_m,r_f]=syskutta('rho_prime',e0, r_m0, r_f0, ef, h);
plot(e,r_m,e,r_f);
mais les coefficient C1 C2 C3 C4 sont pas des constantes je doit les calculer avc la méthode que vous m'avez donnez voila le programme
function[c_1,c_2,c_3,c_4] =coefficientsC_i(A,B);
b=3.0e-10;
e_f=0.3;
y=0.1;
r_f=1.0e14;
r_m=5.0e13;
A=[ 1,0,0,-b^2*(r_f )
1,-b^2*(r_m),-b*(sqrt(r_f)),0
0,0,0,1
0,r_m,(-y/b)*sqrt(r_f),0];
B=[0;0;1/e_f;0];
format long
X=A\B;
%X=[c_1;c_2;c_3;c_4];
end
comment je doit faire pour appeler la fonction coefficientsC_i dans le premier fichier et merci beaucoup -
merci Julient ça marche grace a votre dernier message
merci beaucoup ça m'est vraiment utile
bonne journée -
Alors voici à quoi devrait ressembler le programme principal:
b = 3.0e-10;
e_f = 0.3;
y = 0.1;
r_m0 = 10E10 ;
r_f0 = 10E-11;
h = 0.001;
e0 = 0;
ef = 1;
[e,r_m,r_f] = syskutta('rho_prime',e0, r_m0, r_f0, ef, h);
figure(1);
plot(e,r_m,e,r_f);
% Initialisation des vecteurs permettant la sauvegarde des valeurs des résultats C1, C2, C3 et C4
C1 = zeros(length(r_m),1);
C2 = zeros(length(r_m),1);
C3 = zeros(length(r_m),1);
C4 = zeros(length(r_m),1);
% Boucle de calculs de C1, C2, C3 et C4
for ii = 1:length(r_m):
A = [ 1 0 0 -b^2*(r_f(ii) );
1 -b^2*(r_m(ii)) -b*(sqrt(r_f(ii))) 0;
0 0 0 1;
0 r_m(ii) (-y/b)*sqrt(r_f(ii)) 0];
B=[0;0;1/e_f;0];
[C1(ii),C2(ii),C3(ii),C4(ii)] = coefficientsC_i(A,B);
end;
figure(2);
plot(e,C1, e,C2, e,C3,e,C4);
Et dans la fonction coefficientsC_i il n'y aura que:
function[c_1,c_2,c_3,c_4] = coefficientsC_i(A,B)
X = B\A;
end;