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

Octave Discussion :

Problème pour afficher les résultats d'un graphique


Sujet :

Octave

  1. #21
    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
    Il suffit de mettre bout à bout tous les codes.

    Si tu exécutes le code ci-dessous, tu verras qu'il prend énormément de temps pour afficher toutes les lignes dans la fenêtre de commande d'Octave.
    Il faudra appuyer sur Ctrl+C pour interrompre le code.

    Je ne vois pas bien l'intérêt d'afficher autant de résultat avec fprintf

    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
    clc
    clear all;
    %%Définition des constantes :
    %Une année en secondes
    An = 365.25*24*3600;
     
    %Paramètres du maillage
    Nz = 81; %de 0 à 80km PROFONDEUR
    Nt = 3001; %de 0 à 45Ma TEMPS
     
    %Cette boucle permets de définir une température de 825°C entre 0 et 11km à t=0
    for i=1:12;
      T(i,1)=825;
    end
    %Cette boucle permets de définir une température de 100°C entre 13 et 80km à t=0
    for i=13:Nz-1;
      T(i,1)=100;
    end
    %Cette boucle permets de définir une température de 100°C à 80km en tout temps
    for j=1:Nt;
      T(Nz,j)=100;
    end
     
    for i = 1:Nz
      for j = 1:Nt
        fprintf("Temps = %d ; profondeur = %d ; température = %.3f\n", i, j, T(i,j)); 
      endfor  
    endfor
    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)

  2. #22
    Candidat au Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2022
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2022
    Messages : 12
    Points : 3
    Points
    3
    Par défaut
    Super ! C'est exactement ce que je voulais ! Merci !
    Du coup, j'ai ajouté mes conditions et j'aimerais savoir si c'est possible maintenant de convertir les valeurs dans la boucle en valeur réelle ?
    Je m'explique : dans la boucle, j'ai utilisé les valeurs du pas en temps et du pas en profondeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    %Pas en profondeur 
    Nz = 81 %nombres de points pour aller de 0 à 80 km
    %Pas en temps
    Nt = 3001 %nombres de points pour aller de 0 à 45 Ma
    Et j'ai utilisé le code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    clc
     
    for i = 1:Nz
     if ((i==7) || (i==9) || (i==11) || (i==14) || (i==19) || (i==45));
      for j = 1:Nt
       if ((j==1) || (j==15) || (j==30) || (j==75) || (j==150) || (j==1500) || (j==3001));
        fprintf("profondeur = %d; temps = %d; température = %.3f°C\n", i, j, T(i,j)); 
       endif
      endfor 
     endif 
    endfor
    Est-ce que c'est possible de convertir les valeurs dans la boucle ? Ou plutôt à la sortie pour passer de j==3001 à j==45 Millions d'années
    Encore merci pour vos réponses ^^

  3. #23
    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
    Citation Envoyé par Thibautswiitter Voir le message
    Ou plutôt à la sortie pour passer de j==3001 à j==45 Millions d'années
    Tu dois trouver comment passer d'un intervalle [1 3001] à un intervalle [0 45] et appliquer la formule à chaque valeur de j affichée.

    Tu trouveras un début de réponse ici : Comment normaliser les valeurs d'une matrice dans l'intervalle [0 1] ?
    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.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2015, 13h27
  2. Réponses: 5
    Dernier message: 29/01/2015, 10h57
  3. Problème pour afficher les résultats d'un count = 0
    Par Elninor dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/12/2014, 08h19
  4. Réponses: 5
    Dernier message: 28/03/2007, 23h29
  5. Problème pour afficher le résultat d'un calcul
    Par goomazio dans le forum Assembleur
    Réponses: 3
    Dernier message: 26/01/2006, 10h42

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