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 boucle multiple [Débutant]


Sujet :

MATLAB

  1. #1
    Membre régulier Avatar de Flaherty Mc Coillean
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Points : 75
    Points
    75
    Par défaut Besoin d'aide boucle multiple
    Bonjour,

    J'ai besoin d'aide sur un projet MATLAB :

    On a un profil de profondeur "Z", ce profil est recoupé par un nombre de couches défini par l'utilisateur, les profondeurs limites entre les couches sont rangées dans la matrice "Zt", chaque couches à un paramètre "a" et "Epi", rangés dans les matrices at et Epit (premiere couche --> première colonne de ces matrices, n ème couche---> n ème colonne de ces matrices)

    on veut faire un calcul ici "toto" pour chaque profondeur de Z en tenant compte des paramètres "a" et "Epi" qui varient en fonction de la profondeur.

    voilà mon programme (qui est faux)

    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
     
    clc
    clear all
     
    nbrcouche=4;% nombre de couches
    Z=[0:1:8]; %profondeur du profil
    Zt=[0 3.6 4.5 5.7]; %limite des couches
     
     
    at=[1 2 3 4]; %ensemble des a de la couche 1 à n
    Epit=[1 2 3 4];%ensemble des Epi de la couche 1 à n
     
    for i=1:length(Z) 
        for n=2:(nbrcouche+1)
            if n>numel(Zt)
                a=at(1,length(at));
                Epi=Epit(1,length(Epit));
                toto(i)=Z(i)+(a*Epi);
            else if Zt(n-1)<Z(i) & Z(i)<Zt(n)
                a=at(1,(n-1));
                Epi=Epit(1,(n-1));
                toto(i)=Z(i)+(a*Epi);
                end
            end
        end
    end
    ce que je veux en résultat (pour cet exemple) c'est une matrice "toto" de une ligne et 8 colonnes avec les valeurs suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto=[1 2 3 4 8 14 22 23 24]
    comme sur cette image où les lignes gras noire représentent les limites de couches :



    Merci d'avance, ça fait cinq heures que je galère dessus, je commence à avoir du mal à réfléchir.
    C'est moi où il fait chaud là ?

  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 : 53 166
    Points
    53 166
    Par défaut
    Tu devrais jeter un œil à la fonction HISTC :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Zt=[0 3.6 4.5 5.7];
    Z=0:1:8;
    a=1:4;
    Epit=1:4;
     
    [x,y]=histc(Z,[Zt inf]);
    toto=Z+a(y).*Epit(y)
    qui retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    toto =
     
         1     2     3     4     8    14    22    23    24
    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)

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

Discussions similaires

  1. [XL-2010] Besoin d'aide boucle et offset
    Par zealot37 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/02/2013, 13h56
  2. [MySQL] Besoin d'aide pour faire une boucle
    Par plex dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/04/2008, 13h47
  3. besoin d'aide boucle if
    Par jérémy1664 dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 11/01/2008, 11h58
  4. Besoin d'aide pour une boucle
    Par lenneth666 dans le forum Prolog
    Réponses: 2
    Dernier message: 27/12/2006, 15h41
  5. [VBA-E]besoin d'aide pour faire une boucle
    Par mikazounette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/04/2006, 14h04

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