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 :

affichage du contenu d'une variable en dehors de la boucle


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut affichage du contenu d'une variable en dehors de la boucle
    Bonjour,
    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
    19
    20
    21
    n=10;
    while i<=n
        b=randint(1,i);
        a=randint(1,i);
       i=i+1;
    end
    psi=[];
     
    for i=1:n
     
            if ((a(i)==0)&(b(i)==0))     
               psi=ket([1 0]);
            elseif ((a(i)==1)&(b(i)==0))       
               psi=ket([0 1]);
            elseif ((a(i)==0)&(b(i)==1))    
               psi=ket([1 1]);
            elseif ((a(i)==1)&(b(i)==1)) 
               psi=ket([1 -1]);
            end
    disp(psi);      
    end
    Le problème si je fais ressortir "disp(psi)" de la boucle je n'aurai que la dernière valeur chose tout à fait logique seulement en corrigeant le code ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for i=1:n
     
            if ((a(i)==0)&(b(i)==0))     
               psi(i)=ket([1 0]);
            elseif ((a(i)==1)&(b(i)==0))       
               psi(i)=ket([0 1]);
            elseif ((a(i)==0)&(b(i)==1))    
               psi(i)=ket([1 1]);
            elseif ((a(i)==1)&(b(i)==1)) 
               psi(i)=ket([1 -1]);
            end
    end
    disp(psi);
    J'ai l'erreur :
    ???  In an assignment  A(I) = B, the number of elements in B and
     I must be the same.
    
    Error in ==> progpsi at 18
               psi(i)=ket([1 -1]);
    Comment faire? sachant que par exemple ket([0 1]) est le vecteur [0;1]

    En gros, j'ai pu contourner l'erreur mais ce n'est pas suffisant parce que ma variable psi ne pourra pas être utilisée hors de cette boucle.

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

    Dans un premier temps, le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    n=10;
    while i<=n
        b=randint(1,i);
        a=randint(1,i);
        i=i+1;
    end
    Est incorrect: seule la dernière itération est prise en compte.
    Soit tu fais une boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i = 1:n
        a(i) = randint;
        b(i) = randint;
    end
    Soit tu fais sans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a = randint(1,n);
    b = randint(1,n);
    Ensuite, comme te le précise l'erreur, tu essais de stocker 2 valeurs dans une seule.
    Ici n est petit, mais je te conseille de regarder ce point de la FAQ.
    Dernière modification par Invité ; 28/09/2011 à 18h40. Motif: Lien corrigé

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci bien pour votre aide.
    Reste à dire que le lien que vous m'avez envoyé ne fonctionne pas.
    et puis j'ai bien compris que la taille des deux variables ne coïncident pas seulement, je n'ai pas su comment le corriger.
    Merci de me donner un exemple pour m’éclaircir. (je n'ai pas utilisé matlab auparavant et donc vous pouvez me juger débutante)

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai corrigé mon message précédent pour le lien.
    En ce qui concerne la correction du code, je t'ai déjà donné l'élément:
    à mettre dans tes 4 conditions avec tes ket(...) adaptés.
    En tant que débutante, je te conseille vivement le tutoriel Gestion des matrices

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    j'ai corrigé le code et j'ai passé voire le tuto des matrices.
    Le resultat d'exécution est à priori comme suit:
    progpsi
    1 0 0 1 1 0 0 1 1 0

    0 0 1 0 1 1 0 0 0 0

    0 1 0.70711 0 0.70711 0.70711 1 0 0 1
    1 0 0.70711 1 -0.70711 0.70711 0 1 1 0
    bien entendu j'ai transposé psi pour la simple raison que j'ai besoin de vecteurs colonne et comme j'avais déjà mentionné je vais l'utiliser pour performer certain calcul.
    Malheureusement avec la correction précédente, ça ne fonctionne plus,
    le code est :
    Prec(i)=braket(psi,[1 0;0 -1],psi);
    SVP, si vous pensez que je fausse route dites le moi.
    avant j'avais ceci:
    Prec

    Prec =

    0 -1 0 1 0 -1 0 1 1 0

Discussions similaires

  1. [XSLT 1.0] Affichage du contenu d'une variable
    Par henri93 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/01/2012, 14h24
  2. [MySQL] Affichage du contenu d'une variable (refresh)
    Par amerex dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/01/2010, 02h32
  3. Affichage du contenu d'une variable dans un formulaire
    Par arno15 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 31/03/2008, 07h51
  4. Affichage du contenu d'une variable
    Par ninsekh dans le forum C#
    Réponses: 4
    Dernier message: 21/08/2007, 16h42
  5. Affichage contenu d'une variable dans JS
    Par tangjuncn dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/05/2006, 13h38

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