function
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

function



  1. #1
    lena9

    Cool function


    ------

    Bonjour
    j'ai fait un programme MATLAB qui contient beaucoup d'équations alors j'ai eu recours à des Function , or j'ai en utilisé autant et y'en a qui se ressemblent comme ces deux fonctions là:
    la première:

    Code:
    function[intH18]=fun18(Qs,mm,kk)
    intH18=zeros(Qs*kk,Qs*mm);
    rad=pi/180;
    d=3*rad;
    Pd=360/Qs;
    c=0.5*Pd*rad;
    r3=46.25e-3;
    
    ii=0;
    for i=1:Qs
     
        for k=1:kk
               ii=ii+1;
            for m=1:mm
                
                if (m^2)*(c^2)==(k^2)*(d^2)
                    intH18(ii,m)=-(m/(8*c*k*d))*((2*c*k*pi*cos((-c*k*pi+k*pi*d)/(2*c))-c*sin((-c*k*pi+k*pi*d)/(2*c)))+c*sin((3*k*pi*c+k*pi*d/(2*c))))*r3^((m*pi/d)-1);
                else
                    intH18(ii,m)=(((m^2)*c)/2)*(1/((k*d)^2-(m*c)^2))*((1+(-1)^k)*sin(m*pi*c/(2*d))*cos(m*pi/2)+(-1+(-1)^k)*cos(m*pi*c/(2*d))*sin(m*pi/2))*r3^((m*pi/d)-1);
                end
            end
        end
        
    end
    et la deuxième:
    Code:
    function[intH17]=fun17(Qs,mm,kk)
    intH17=zeros(Qs*kk,Qs*mm);
    rad=pi/180;
    d=3*rad;
    Pd=360/Qs;
    c=0.5*Pd*rad;
    r3=46.25e-3;
    
    ii=0;
    for i=1:Qs
        for k=1:kk
               ii=ii+1;
            for m=1:mm
               
                if (m^2)*(c^2)==(k^2)*(d^2)
                    intH17(ii,m)=(m/(8*c*k*d))*((2*c*k*pi*cos((-c*k*pi+k*pi*d)/(2*c))-c*sin((-c*k*pi+k*pi*d)/(2*c)))+c*sin((3*k*pi*c+k*pi*d/(2*c))))*r3^(-(m*pi/d)-1);
                else
                    intH17(ii,m)=-(((m^2)*c)/2)*(1/((k*d)^2-(m*c)^2))*((1+(-1)^k)*sin(m*pi*c/(2*d))*cos(m*pi/2)+(-1+(-1)^k)*cos(m*pi*c/(2*d))*sin(m*pi/2))*r3^(-(m*pi/d)-1);
                end
            end
        end
    
    end
    alors la seule différence entre les deux c'est dans la première l'équation est multipliée par r3^((m*pi/d)-1) et dans la seconde r3^(-(m*pi/d)-1)
    ma question est ce que je peux utiliser qu'une seule fonction au lieu de deux et comment faire les utiliser pour chacune ?
    Merci beaucoup

    -----
    Dernière modification par JPL ; 30/04/2015 à 21h53. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    Jack
    Modérateur

    Re : function

    Tu peux ne faire qu'une seule fonction avec les 2 et passer ce qui les différencie dans un paramètre supplémentaire.

  3. #3
    lena9

    Re : function

    bonjour
    merci de votre réponse
    le paramètre qui les différencie dépend de la boucle et n'est donc pas constant , comment mettre ce paramètre alors?

  4. #4
    Jack
    Modérateur

    Re : function

    le paramètre qui les différencie dépend de la boucle et n'est donc pas constant
    ????
    Evidemment, c'est le principe du passage de paramètre. Par exemple, dans les 2 fonctions que tu nous as exposéés, Qs, mm et kk ne sont pas constants et c'est bien pour cela qu'ils ont été passés en paramètre.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Simple function
    Par moial dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 21/09/2013, 17h46
  2. dirichlet eta function
    Par acx01b dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 29/09/2010, 00h38
  3. s-function de matlab
    Par invite7fb0a66f dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 22/04/2009, 05h31
  4. qu'est-ce que le ''I-function''
    Par invitebffa0846 dans le forum Biologie
    Réponses: 3
    Dernier message: 16/11/2005, 07h56
  5. Aide sur les S-Function
    Par invitea77fee56 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 23/04/2005, 10h49