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 :

Renvoyer un code aux lignes précédentes


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur Environnement
    Inscrit en
    Novembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Environnement
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Renvoyer un code aux lignes précédentes
    Bonjour,

    Je tente actuellement de modéliser le niveau d'eau dans un bassin soumis à un débit d'entrée, aux précipitations et à l'évaporation.

    Mon bassin possède trois composantes: un chenal profond de 3m, une prairie avec une hauteur max de submersion de 0.4 m et des digue sur le pourtour de 1.5 m de haut.

    J'ai exprimé l'ensemble de la topographie à l'aide de forme géométriques simples et le tout en fonction de la hauteur. Dès lors lorsque je run mon modèle, le bassin se remplis: d'abord le chenal puis, l'eau se déverse dans la prairie et si tout est plein, l'eau se monte le long des digues.

    Pour cela j'utilise une boucle "for" qui parcours mes données et des boucles if:

    Si V<V_chenal : calcul de la hauteur, du volume et de la surface dans le chenal

    Si V>V_chenal et V<V_chenal+V_prairie: calcul de la hauteur, du volume et de la surface dans la prairie

    Si V>V_chenal+V_prairie: calcul de la hauteur, du volume et de la surface dans la prairie.

    Le problème est que dans certains cas, entre deux itérations, le volume diminue. Par exemple le niveau d'eau de la prairie s'abaisse et retourne dans le chenal.

    A ce niveau, le code matlab n'arrive pas à retourner dans le bloc chenal précédent et me donne un message d'erreur.

    Des solutions pour renvoyer mon code au début???

    Merci d'avance

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Impossible en matlab de renvoyer un code au début (pas de goto).

    Il faut transformer tes GOTO en boucles. Par exemple

    ce que tu voudrais (LABEL et GOTO n'existent pas en matlab)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <LABEL 1>
    x= traitement1()
    if x; <GOTO 1>; end
    traitement2()
    est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    x= true;
    while x
       x= traitement1();
    end
    traitement2();

  3. #3
    Membre éclairé
    Homme Profil pro
    Doctorant automatique
    Inscrit en
    Janvier 2012
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Doctorant automatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 446
    Points : 719
    Points
    719
    Par défaut
    Salut,

    Mon commentaire peut soit t'être utile, soit t'embrouiller mais bon (si tu ne vois pas de quoi je parle, ignore ce message) : si tu cherches à faire un code chiadé, je te conseille d'utiliser l'orienté objet... mais si tu préfères développer un simple code de calcul, utilise la méthode de VV33D.

    Cordialement,
    Je ne réponds pas aux MP techniques. Le forum est là pour ça.
    La raison est simple : il est ennuyeux de répondre à une seule personne, alors que la réponse peut servir à tout le monde.
    Conclusion : n'hésitez pas à utiliser le forum pour poser vos questions.
    Matlab 2005 - ver.7.1.0.183 (R14) Service Pack 3

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    je vais répondre à coté, mais vu ton problème je ferais plutôt appel à simulink pour le modéliser

Discussions similaires

  1. Renvoyer code à la ligne
    Par marcuscircus dans le forum VBA Access
    Réponses: 7
    Dernier message: 13/08/2008, 09h41
  2. Comment renvoyer un code retour?
    Par soulryo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/12/2006, 16h49
  3. Réponses: 3
    Dernier message: 20/12/2006, 08h15
  4. Renvoyer automatiquement a la ligne dans un TEdit
    Par Yphon dans le forum Composants VCL
    Réponses: 1
    Dernier message: 18/01/2006, 13h45
  5. Editeur de code en ligne
    Par glloq8 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 03/10/2005, 12h11

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