IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

labels ou etiquettes pour faire des boucle "Tant que..."


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut labels ou etiquettes pour faire des boucle "Tant que..."
    Bonjour,

    j'aimerai connaitre s'il existe des labels ou des étiquettes pour les utilisées dans les boucle matlab.

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    label    instruction 1
    instruction 2
    instruction 3
    if (condition)
       aller a label 
    end
    merci a tous

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Tu veux dire une sorte de GOTO ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Sous matlab, les 'nested functions' font cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function fun1
     
    for i=1:n
          fun2
    end
     
      function fun2
         % Instructions ...
      end
    end
    fun2 partage le workspace de fun1, ça peut jouer le rôle d'un GOTO ...

    ++
    AlloSchool, votre école sur internet.

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Vectorized goto in MATLAB | Loren on the Art of MATLAB

    penser à lire les commentaires surtout !
    => en fait cet article est un "easter egg", un poisson d'avril.
    GOTO est une commande qui n'existe pas et qui ne sera jamais implémentée dans MATLAB pour tout un tas de bonnes raisons que je ne m'étendrais pas à relater ici.
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    merci les amis,

    mais le but c'est de répété une instruction tant que l'égalité n'est pas respecté, c'est basé sur la méthode de Newton itérative, et il faut faire des itération jusqu'à obtenir la meilleur approximation.

    exemple
    label a=b
    instruction1
    instruction2
    resultat b
    if (le nouveau b~=a)
    aller a label
    else ecrire b


    je m'excuse si je suis pas assez claire.

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Normalement je pense que tu dois pouvoir le faire avec une instruction WHILE.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    a=...;
    b=...:
    while abs(b-a)>eps %tant que b différent de a à eps près
       instructions...
       calcul de b
    end
    %si on sort c'est que c'est ok
    disp(b);
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut labels
    Peut-être que switch et case sont une solution ?

  8. #8
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    bonsoir les amis,
    Merci caro95470, c'est très intelligent de votre part, on voit toute la finesse de la programmeuse, je vous tire mon chapeau vous êtes la


    je me suis heurté a un nouveau problème: comment écrasé un vecteur par un autre, de rang différents?

    ces problèmes de programmation, ça n'en fini jamais !!!

  9. #9
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par hudson++ Voir le message
    je me suis heurté a un nouveau probléme: comment écrasé un vecteur par un autre, de rang différents?
    Que veux-tu dire par "de rang différents" ?
    Sous MATLAB l'écrasement des variables se fait tout simplement par réaffectation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    V=[1 2 3]; %V est de taille 1*3
    V=1;%V est de taille 1*1
    Règles du Forum

    Adepte de la maïeutique

  10. #10
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    bonjour,
    ce que je veut dire par rang, c'est taille du vecteur, car dans mon programme, la taille du vecteur représente les rangs harmoniques d'un courant électrique redressé.

    et donc, pour écraser un vecteur par un autre, a la fin d'un ensemble d'instructions, pour ensuite "re" boucler le nouveau vecteur au début de l'ensemble d'instruction, en sachant que le vecteur qui écrase n'a pas forcément la même taille a chaque fois.........

    et donc, grosso-modo, je sèche sur la façon écrasé un vecteur sur un autre de rang différents

    merci pour votre disponibilité, vous êtes super

  11. #11
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Si tu connais la taille que va avoir ton vecteur dès le début de la boucle le mieux est de l'instancier à ce moment-là.
    Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i=1:3
       V=zeros(1,i);%V sera un vecteur de taille 1*i
     %autres instructions
    end
    Regarde par ici : Qu'est-ce que la préallocation de mémoire ?

    Si ce que je t'ai mis ne convient pas ce serait bien de montrer un bout de code avec :
    - l'initialisation du vecteur
    - son remplissage
    - l'endroit où tu veux le réinitialiser
    Règles du Forum

    Adepte de la maïeutique

  12. #12
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    salut,

    ce que vous avez mis conviens très bien, et après que le vecteur change de taille et s'adapte avec le nouveau vecteurs, il entre dans une boucle pour remplacé ses éléments un a un ....... voila ce que j'ai obtenu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %    ecrasé un vecteur par un autre     %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        a=length(p_Iac);%taille du vecteur p_Iac
     
        m=length(p_Vdc);%taille du vecteur p_Vdc
        for i=1:1:a
        p_Idc=zeros(1,i);
    end
    for i=1:1:m
        p_Vac=zeros(1,i);
    end
        for i=1:1:a
        p_Idc=[p_Idc,p_Iac(i)];
    end
    for i=1:1:m
        p_Vac=[p_Vac,p_Vdc(i)];
    end
    %%%%%%%%%%%%%%%%%%fin de ecrasé vecteur%%%%%%%%%%%%%%%%%%%%%%
    il me reste qu'a mettre le tout dans une boucle, de façon a créer un algorithme de type Newton (algorithme itératif), et je reviens au probléme de l'absence de label en Matlab, je pense mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i=1:1:1000000
    ii=[ii,i];
    instructions
    if condition
    break;
    end 
    end
    merci beaucoup,je vous tien au courant de la suite

  13. #13
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Euh...je ne comprends pas très bien.
    Te rends-tu compte que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for i=1:1:a
        p_Idc=zeros(1,i);
    end
    Revient exactement au même que de faire ça :
    Règles du Forum

    Adepte de la maïeutique

  14. #14
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    Merci pour cette remarque

    comme ça mon code va se simplifier = temps de calcul moins important

    merci beaucoup

  15. #15
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Et donc c'est pareil pour la suite (en fait toutes tes boucles sont inutiles...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    p_Idc=[zeros(1,a),p_Iac];
    p_Vac=[zeros(1,m),p_Vdc];
    Règles du Forum

    Adepte de la maïeutique

  16. #16
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    salut,
    voila le programme final:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    p_Vs=[];
    p_Is=[];
    p_Porte=[];
    p_Vdc=[];
    p_Vac=[];
    p_Idc=[];
    p_Iac=[];
    dd=[];
    ds=[];
    ss=[];
    % initialisation des vecteurs p_Vac et p_Idc-------
    for i=1:1:50
        p_Vac=[p_Vac,i];
        p_Idc=[p_Idc,i];
        p_Vs=[p_Vs,i];
        p_Is=[p_Is,i];
    end
    % creation du veteur p_Porte, taille=400
    for i=1:1:400
        p_Porte=[p_Porte,i];
    end
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
        a=length(p_Idc);
     
        b=0;
    %calcule des vecteurs p_Iac, p_Vdc, par le méthode itérative jusqu'au break
    while (abs(a-b)>0) %tant que b différent de a à 0 
        p_Icom=somme(p_Vac,p_Idc);
        p_Iac1=produit(p_Porte,p_Idc);
        p_Iac2=produit(p_Porte,p_Icom);
        p_Iac3=produit(p_Porte,p_Icom);
        p_Iac4=somme(p_Iac1,p_Iac2);
        p_Iac=somme(p_Iac4,p_Iac3);
        p_Vdc=produit(p_Porte,p_Vac);
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %    ecrasé un vecteur par un autre     %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        a=length(p_Iac);%taille du vecteur p_Iac
        b=length(p_Idc);
        m=length(p_Vdc);%taille du vecteur p_Vac
        if (a==b)  %si condition alor il arréte le programme et affiche p_Iac p_Vdc
            break;
        end
       p_Idc=[zeros(1,a),p_Iac]; %si non il remplace les vecteurs de départ et %calcul encore une fois
       p_Vac=[zeros(1,m),p_Vdc];
       %%%%%%%%%%%%%%%fin de ecrasé %vecteur%%%%%%%%%%%%%%%%%%%%%%
    end
    p_Iac
    p_Vdc
    mais matlab calcule trop longtemps, je c pas si il faut attendre; pour avoir le résultat, ou si mon programme, s'est emballé, alors j'ai ajouté "ss", et donc, a chaque itération, matlab m'affiche "ss", le programme calcule, mais c trop long , en sachant que ce programme représente que 3 % de mon travail total, comment faire pour accéléré la cadence?

  17. #17
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Il faut utiliser la vectorisation...
    Toutes les boucles de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    elt=[];
    for i=1:1:n
       elt=[elt,i];
    end
    s'écrivent tout simplement :Le test pour le while :est exactement identique à Cependant dans mon exemple j'avais mis :car la condition d'égalité peut ne jamais être atteinte pour la raison expliquée dans cette FAQ : Pourquoi 0.3-0.2-0.1 est-il différent de 0 ?

    Que sont les fonctions sommes et produit ? (j'espère que tu n'as pas recodé les fonctions SUM et PROD de MATLAB....)

    p_Iac2 et p_Iac3 sont égales en permanence : pourquoi avoir 2 variables ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (a==b)  %si condition alor il arréte le programme et affiche p_Iac p_Vdc
         break;
    end
    La condition est déjà dans le WHILE, pourquoi la remettre ici (du coup il fait le test 2 fois)

    Aurais-tu l'algorithme de ce que tu veux faire car là c'est assez flou ?
    Règles du Forum

    Adepte de la maïeutique

  18. #18
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut
    salut,

    je vient de testé le programme, que j'ai fait,et ça marche très bien.

    pour l'optimise, j'ai joué, non pas sur Matlab (coté programmation), mais sur sur le coté physique que représentes ses variables, maintenant le programme s'exécute en quelque seconde !!!!

    voila ce que j'ai obtenu:
    1- la fonction principale, basé sur la méthode de Newton itérative :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    function [p_Iac,p_Vdc] = initiallisation(k,p)
    p_Vs=[];
    p_Is=[];
    p_Porte=[];
    p_Vdc=[];
    p_Vac=[];
    p_Idc=[];
    p_Iac=[];
    dd=[];
    ds=[];
    ss=[];
    % initialisation des vecteurs p_Vac et p_Idc-------
    p_Vac=1:k;
    p_Idc=1:k;
    p_Vs=1:k;
    p_Is=1:k;
    % creation du veteur p_Porte, taille=400
    p_Porte=1:p;
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
        a=length(p_Idc);
        ss=0;
        b=0;
    %calcule des vecteurs p_Iac, p_Vdc, par le méthode itérative jusqu'au break
    while a~=b %tant que b différent de a à 0 
        p_Iac=produit(p_Porte,p_Idc);
        p_Vdc=produit(p_Porte,p_Vac);
        ss=ss+1
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        %    ecrasé un vecteur par un autre     %
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
        a=length(p_Iac);%taille du vecteur p_Iac
        b=length(p_Idc);
        m=length(p_Vdc);%taille du vecteur p_Vac
       p_Idc=[p_Iac]; %si non il remplace les vecteurs de départ et calcul encore une fois
       p_Vac=[p_Vdc];
       %%%%%%%%%%%%%%%fin de ecrasé vecteur%%%%%%%%%%%%%%%%%%%%%%
    end
    p_Iac
    p_Vdc
    2- voila la fonction produit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    function ss = produit(p_Vs,p_Porte)
    ss=[];
    rr=[];
    ds=[];
    n=length(p_Vs);
    m=length(p_Porte);
    %------ ça marche pour m=n -------------
    if (m==n)
        for i=1:1:n
        r=abs(p_Vs(i)-p_Porte(i));
        rr=[rr,r];
        r=p_Vs(i)+p_Porte(i);
        rr=[rr,r];
    end
        ds=sort(rr);
        f=min(ds);
        s=length(ds);
        for i=2:s
        k=i-1;
        if (ds(i)>ds(k))
            g=ds(i);
           ss=[ss,g];
        end
    end
    if (f~=0)
    ss=[f,ss]; 
    end
    else
    %------------------------------
    z=min(m,n);
    if (m<n)
        z=min(m,n);
        nn=[p_Vs];
        p_Vs=[p_Porte];
        p_Porte=[nn];
        p_Vs=[p_Vs,p_Porte];
        n=length(p_Vs);
        m=length(p_Porte);
    else
     p_Vs=[p_Vs,p_Porte];
        n=length(p_Vs);
        m=length(p_Porte);
    end
    for i=1:1:z
        v=p_Vs(i);
        h=i+z;
        j=p_Vs(h);
        r=abs(v-j);
        rr=[rr,r];
        r=v+j;
        rr=[rr,r];
    end
     
    for i=z+z+1:1:n
         rr=[rr,p_Vs(i)];
     end
     ds=sort(rr);
        f=min(ds);
        t=max(ds);
        s=length(ds);
        for i=2:s
        k=i-1;
        if (ds(i)>ds(k))
            g=ds(i);
           ss=[ss,g];
        end
    end
    if (f~=0)
    ss=[f,ss]; 
    end
    end
    end
    maintenant, je vais pouvoir m'attaquer au chose sérieuse!!

    ça va pas être facile, merci a vous caro

  19. #19
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Heureuse que ça fonctionne mais si je peux me permettre tu te compliques drôlement la vie et tu n'utilises pas à fond les possibilités de MATLAB en vectorisation.
    Exemple dans la fonction produit sur le 1ère partie du code (dans le if m==n) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    rr=[];
    for i=1:n
        r=abs(p_Vs(i)-p_Porte(i));
        rr=[rr,r];
        r=p_Vs(i)+p_Porte(i);
        rr=[rr,r];
    end
    %==
    %est pareil que :
    rr2=[];
    for i=1:n
        rr2(end+1)=abs(p_Vs(i)-p_Porte(i));
        rr2(end+1)=p_Vs(i)+p_Porte(i);
    end
    %==
    %est pareil que :
    rr3(1:2:2*n-1)=abs(p_Vs-p_Porte);
    rr3(2:2:2*n)=p_Vs+p_Porte;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ds=sort(rr);
    f=min(ds);%donc ds(1) puisque ds est trié
    s=length(ds);
    ss=[];
    for i=2:s
        if (ds(i)>ds(i-1))%toujours vrai puisque ds est trié sauf si ds(i)=ds(i-1)
            g=ds(i);
            ss=[ss,g];
        end
    end
    %==
    %est pareil que :
    ss=unique(rr);%unique trie et enleve les doublons
    if f==0
        ss(1)=[];%on enleve le 1er qui est le min
    end
    Règles du Forum

    Adepte de la maïeutique

  20. #20
    Futur Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 21
    Points : 5
    Points
    5
    Par défaut

    je vous remercie pour votre aide qui m'a permis de bien avancé dans mes recherches, et je vous en suis vraiment reconnaissant.


    je vous remercie pour votre gentillesse et votre disponibilité, et qui nous est très précieuse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/06/2014, 17h47
  2. Réponses: 3
    Dernier message: 07/04/2014, 09h34
  3. Quel langage pour faire des boucles sous FTP ?
    Par Mourne dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 04/07/2007, 16h33
  4. [audio] logiciel pour faire des .au ?
    Par Seiya dans le forum Multimédia
    Réponses: 7
    Dernier message: 05/01/2005, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo