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 :

Sauvegarde valeurs dans boucle [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Par défaut Sauvegarde valeurs dans boucle
    Tout d'abord bonjour, vu que je suis nouveau sur le forum.
    Je programme assez souvent en Java mais cette fois, pour un projet spécifique, j'ai du utiliser matlab.
    Voilà ce qui me pose problème. J'aimerais sauvegarder les valeurs lors de chaque exécution d'une boucle dans une matrice 1 colonne ou 1 ligne.
    Seulement lorsque je fais mon code comme en Java, toutes les valeurs s'additionnent et se mettent à la dernière colonne ou ligne.
    Voici mon code
    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
     
    ns=5;
    k=0;
    u=0;
    i=1;
    for(i=1:ns)
    grids = fire(60, 0.8, 0.001, 0.001, 0.3, 20);  %fonction qui renvoie une matrice 60*60 constituée de 0 ou de 1
    for x=1:60
        for y =1:60
            if (grids(x,y)== 0)
                k=k+1;
            else
                u=u+1;
            end;
            end;
    end;
    matk(ns,1)=k;
    end;
    A la fin je voudrais obtenir une matrice 5*1 avec 5 valeurs différentes mais mon prob est que j'obtiens bien une matrice 5*1 mais avec des 0 pour les 4 premieres valeurs et la somme des 5 valeurs en position (5,1).
    Comment puis-je y remédier?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Ton compteur c'est i, ns est fixe (=5) donc le problème doit se situer ici :devient
    Non ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Par défaut
    hum hum en effet... c'est i et non ns...
    Et il y avait aussi le k=0; à placer à l'intérieur de la boucle.
    Qu'est ce qu'on peut se sentir bête des fois...
    Désolé de vous avoir fait perdre votre temps et merci pour la rapidité!

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Et sinon il y a plus rapide que ta double boucle (à vérifier car je n'ai pas MATLAB sous la main) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    k=sum(grids==0);
    %et si tu as besoin de u (mais ça n'a pas l'air)
    %u=sum(grids~=0);
    Du coup tu peux même te passer de ta variable intermédiaire k.

    Voir la Qu'est-ce que l'indexage logique ?
    Et le "i=1" avant la boucle for ne sert à rien.

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

Discussions similaires

  1. Sauvegarder valeur dans executable
    Par magestik dans le forum Débuter
    Réponses: 5
    Dernier message: 30/11/2008, 11h44
  2. Réponses: 2
    Dernier message: 14/07/2006, 18h37
  3. Réponses: 20
    Dernier message: 23/03/2006, 16h21
  4. [xsl-fo] Recuperation de valeurs dans une boucle
    Par serwol dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 12/12/2005, 12h13
  5. Réponses: 12
    Dernier message: 10/11/2005, 09h05

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