à l'aide je suis nulle en programmation

lyndalouis Messages postés 18 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

4 réponses

  1. JulienJust Messages postés 164 Statut Membre 18
     
    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
    0
  2. lyndalouis Messages postés 18 Statut Membre
     
    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
    0
  3. lyndalouis Messages postés 18 Statut Membre
     
    merci Julient ça marche grace a votre dernier message
    merci beaucoup ça m'est vraiment utile
    bonne journée
    0
  4. JulienJust Messages postés 164 Statut Membre 18
     
    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;
    0