Boucle if
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Boucle if



  1. #1
    turbulent

    Boucle if


    ------

    Bonjour tout le monde;
    Je cherche à avoir des valeurs de la variable S(h>=1)=1. Or, dans mon code Octave, même pour des valeurs de h>=1, j'obtiens des valeurs de S < 1. Je n'arrive pas à détecter l'erreur. Merci d'avance.
    Code:
    clc
    clear all
    alpha=1.15;
    nn=2;
    m=1-1/nn;
    h=-5:.1:1;
    S=(1+(alpha*abs(h).^nn)).^(-m);
      if (h >= 0)
         S=1;
      endif
    plot(h,S)

    -----
    Dernière modification par Jack ; 03/10/2021 à 16h04. Motif: Suppression balises quote

  2. #2
    pm42

    Re : Boucle if

    J'ai l'impression que ta condition (le if) est juste une instruction exécutée indépendamment du calcul en 1 fois de S.

  3. #3
    Paraboloide_Hyperbolique

    Re : Boucle if

    Bonjour,

    La condition dans le "if" n'est pas correcte sur deux points:

    1. h est est un vecteur et donc
    Code:
    h >= 0
    aussi. Or un "if" demande un scalaire.
    2. Il y a une contradiction entre la condition
    Code:
    h >= 0
    du code et la demande mentionnant h >= 1...

    Il faut soit utiliser une boucle sur les valeurs de h, soit (et c'est plus performant pour Octave/Matlab) tirer partit des capacités de vectorisation d'Octave.

  4. #4
    turbulent

    Re : Boucle if

    Même en utilisant une boucle sur les valeurs de h, je n'obtiens sur le graphe qu'un seul point (le dernier point de la liste h)
    Code:
    clear all
    alpha=1.15;
    nn=2;
    m=1-1/nn;
    %h=-5:.1:1;
    deltah=.1;
    h=-5:deltah:1;
    N=length(h);
    h(1)=-5;
    for n=2:N;
       h(n)=h(n-1)+deltah; 
    if h(n) < 0
    S(n)=(1+(alpha*abs(h(n)).^nn)).^(-m);
    else
    S(n)=1;
    endif
    endfor
    plot(h(n),S(n))

  5. A voir en vidéo sur Futura
  6. #5
    turbulent

    Re : Boucle if

    C'est bon, je viens à trouver la bonne réponse en utilisant "plot(h(,S()". Merci.

  7. #6
    Ernum

    Re : Boucle if

    Salut,
    Citation Envoyé par turbulent Voir le message
    C'est bon, je viens à trouver la bonne réponse en utilisant "plot(h(,S()". Merci.
    il fallait lire ça je supposes:
    Code:
    plot(h(:),S(:))

  8. #7
    umfred

    Re : Boucle if

    je pense qu'on peut se passer de la parenthèse => plot(h,S) vu que ce sont des tableaux de même taille

Discussions similaires

  1. Javascript Boucle dans Boucle (Array)
    Par Great.J dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 24/03/2020, 10h05
  2. relation entre gain statique en boucle ouverte et celui en boucle fermee
    Par invite21730e48 dans le forum Électronique
    Réponses: 4
    Dernier message: 29/09/2014, 21h47
  3. problème boucle interruption avec boucle spi
    Par invitef9a5b0e0 dans le forum Électronique
    Réponses: 8
    Dernier message: 16/03/2013, 03h26
  4. Diagramme de Bode boucle ouverte et boucle fermée
    Par invite29a24ce3 dans le forum Physique
    Réponses: 4
    Dernier message: 21/06/2012, 14h24
  5. Boucle ouverte boucle fermée
    Par invitedaf7b98f dans le forum Physique
    Réponses: 5
    Dernier message: 10/01/2010, 16h13