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 :

Besoin d'aide sur une fonction if


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Besoin d'aide sur une fonction if
    Bonjour,
    Je sollicite votre aide pour un petit problème :
    J'aimerai généré un vecteur ligne qui indexera des valeurs à partir de matrice.
    J'ai 3 matrices (47,53) donnant des valeurs d'altitudes, elles correspondent à des couches géologiques. J'aimerai que pour chaque point nx,ny,nz avoir une indexation de la couche géologique dans lequel se trouve ce point. Pour ce faire j'ai écris un bout de code, mais il doit y avoir une erreur dedans, je n'ai pas le résultat souhaité :

    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
    nz=200
    ny=53
    nx=47
    domain =[];
     domain = [1:nx*ny*nz] == 0; 
    for k=1:nz 
        for j=1:ny    
            for i=1:nx
     
               if dz*k<ZIsocle(i,j) domain(i+(j-1)*nx+(k-1)*(nx*ny))==0;
               else if dz*k<ZIh2(i,j) domain(i+(j-1)*nx+(k-1)*(nx*ny))==1;
                   else if dz*k<ZIh1(i,j) domain(i+(j-1)*nx+(k-1)*(nx*ny))==2;
                       else if dz*k<ZIsurface(i,j) domain(i+(j-1)*nx+(k-1)*(nx*ny))==3;
                           else domain(i+(j-1)*nx+(k-1)*(nx*ny))==0;
                           end
                       end
                   end
               end
             end
         end
     end
    J'ai d'abord crée le le vecteur colonne ayant pour valeur 0 aux bonnes dimensions. Quand j'excecute ce code le vecteur colonne domain reste avec des valeurs 0.
    Voyez-vous ou se trouve mon erreur s'il vous plaît. J'espère que je suis assez clair dans mes explications.
    Merci d'avance.
    Bien cordialement.
    Guilhem

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               if dz*k<ZIsocle(i,j) domain(i+(j-1)*nx+(k-1)*(nx*ny)) = 0;
               else if dz*k<ZIh2(i,j) domain(i+(j-1)*nx+(k-1)*(nx*ny)) = 1;
                   else if dz*k<ZIh1(i,j) domain(i+(j-1)*nx+(k-1)*(nx*ny)) = 2;
                       else if dz*k<ZIsurface(i,j) domain(i+(j-1)*nx+(k-1)*(nx*ny)) = 3;
                           else domain(i+(j-1)*nx+(k-1)*(nx*ny)) = 0;
    L'opérateur == ne sert qu'à effectuer une comparaison et non affecter une valeur.

    Citation Envoyé par belibaste34
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    domain = [1:nx*ny*nz] == 0;
    On utilise habituellement la fonction zeros :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    domain = zeros(1,nx*ny*nz);

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour ces corrections, j'avais déjà essayé de changer les == en =, mais les valeurs du vecteur ligne reste à 0. Pourtant les matrices des couches géologiques sont bonnes, et les boucles sont correctes, afin il me semble.
    Merci encore.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, ce sont soit tes conditions qui ne sont pas bonnes, soit les différentes valeurs des variables utilisées.
    Je te suggère d'effectuer un débogage et regardant ces éléments de plus près

Discussions similaires

  1. [Python 3.X] Besoin urgent d'aide sur une fonction qui me semble pourtant simple à créer.
    Par Mrflop124 dans le forum Général Python
    Réponses: 7
    Dernier message: 25/04/2015, 17h13
  2. NATURAL : Besoin d'aide sur une fonction
    Par Antichoc dans le forum Cobol
    Réponses: 2
    Dernier message: 19/07/2011, 17h00
  3. Besoin d'aide sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2005, 17h40
  4. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 10h29
  5. Besoin d'aide sur les fonction d'interbase
    Par BOUBOU81 dans le forum InterBase
    Réponses: 2
    Dernier message: 05/11/2004, 10h00

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