matlab, boucle for
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

matlab, boucle for



  1. #1
    aureo91
    Invité

    matlab, boucle for


    ------

    bonsoir tout le monde,
    j'ai une question a propos de matlab.
    je dois créer une matrice de 20 colonnes avec la fonction for qui permute pour chaque element entre 1 et -1.
    voici ce que j'ai ecrit :

    > a = zeros(20,20)
    for m = 1:20
    for n = 1:20
    a(m,n) = (-1)^(m+n);
    end
    end

    mais j'obtien toujour une matrice nul.
    quesqu'un peut me donner le code en me l'expliquant.
    merci

    -----

  2. #2
    chrisric

    Re : matlab, boucle for

    bonjour,
    que signifie a = zeros(20,20) ? c'est une matrice de 400 éléments tous nuls !
    Or 0 * 1= 0 * -1 = 0. Donc après le calcul, la matrice est toujours nulle.
    Il faut créer une matrice remplie de 1 : a = ones(20,20).
    Puis vos boucles for feront ce que vous souhaitez.
    Bon courage.

  3. #3
    aureo91
    Invité

    Re : matlab, boucle for

    Salut,
    merci pour ta reponse !
    Mais quand je fais un copié coller du code en remplacant zeros par ones , j'obtient que des 1 et aucun -1.
    donc a mon avis il y a queslque chose dans le code que je fais mal.
    peux tu m'eclairer, merci

  4. #4
    Fanch5629

    Re : matlab, boucle for

    Bonjour.

    Ne pas tenir compte de la réponse de chrisric, elle est incorrecte. Quelque soit la valeur d'initialisation des éléments de la matrice a, ces derniers sont recalculés dans les boucles for.

    Ecrire plutôt :

    a = zeros(20,20) ; // point virgule ici

    for m = 1:20
    for n = 1:20
    a(m,n) = (-1)^(m+n);
    end
    end

    a // pas de point virgule ici -> affichage immédiat de la matrice calculée

    Cordialement.

  5. A voir en vidéo sur Futura
  6. #5
    invite986312212
    Invité

    Re : matlab, boucle for

    il faut arrêter avec matlab, ce truc est dépassé.
    la solution avec R (remplacer 3 par 10)

    > u<-rep(c(-1,1),3)
    > u
    [1] -1 1 -1 1 -1 1

    > u%*%t(u)
    [,1] [,2] [,3] [,4] [,5] [,6]
    [1,] 1 -1 1 -1 1 -1
    [2,] -1 1 -1 1 -1 1
    [3,] 1 -1 1 -1 1 -1
    [4,] -1 1 -1 1 -1 1
    [5,] 1 -1 1 -1 1 -1
    [6,] -1 1 -1 1 -1 1

  7. #6
    Fanch5629

    Re : matlab, boucle for

    Re.

    Entre la formulation matlab et la formulation R, mon choix est vite fait ... et cela m'étonnerait que R propose l'équivalent des toolboxes matlab ...

    Sinon, autre formulation possible pour l'affaire d'oreo91, sans boucles :

    a = -ones(20,1) * -ones(1,20);

    Bye.

  8. #7
    invite986312212
    Invité

    Re : matlab, boucle for

    Citation Envoyé par Fanch5629 Voir le message
    a = -ones(20,1) * -ones(1,20);
    tu l'as testé?

  9. #8
    Fanch5629

    Re : matlab, boucle for

    Re.

    J'ai écrit une énormité, bien sûr ...

    Je retourne me coucher !

  10. #9
    invitec5eb4b89

    Re : matlab, boucle for

    Citation Envoyé par Fanch5629 Voir le message
    Re.
    et cela m'étonnerait que R propose l'équivalent des toolboxes matlab ...
    Hum... Moi ca m'étonnerait que les toolboxes Matlab proposent l'équivalent des librairies R

    Et juste par curiosité, quelque chose comme
    Code:
    u = (-1)^(1:3) ; 
    a = u' * u ;
    a
    ,
    ca marche aussi ?

  11. #10
    chrisric

    Re : matlab, boucle for

    bonjour,
    je suis confus de l'erreur que j'ai commise.
    Mais une chose m'interroge : quel était le problème dans la formulation initiale du programme ?
    Le ; de la fin de la déclaration ne joue en rien sur la suite, et finalement la matrice a s'écrit comme demandé par le cahier des charges.

    P.S.
    En fait, je n'utilise pas Matlab, mais Scilab, logiciel de l'INRIA, qui est gratuit.

  12. #11
    Sylvestre

    Re : matlab, boucle for

    Citation Envoyé par chrisric Voir le message
    Mais une chose m'interroge : quel était le problème dans la formulation initiale du programme ?
    Tu n'avais pas fait d'erreur. Mais tu avais affiché la matrice telle qu'elle était avant que tu la remplisse, alors que tu aurais du l'afficher après.

    Tu la remplissais correctement, mais tu ne l'affichais pas après...
    Programming is understanding

Discussions similaires

  1. Matlab : Problème de format dans boucle
    Par invite2d9939ba dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 03/04/2008, 11h15
  2. fonction avec boucle for matlab
    Par invitee98002ab dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 03/07/2007, 16h21
  3. Optimisation boucle Matlab.
    Par invite01e6eb40 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 13/04/2007, 11h50
  4. MATLAB-pb d'initialisation de boucle
    Par invite230d05f5 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 20/07/2005, 15h08
  5. sortir d'une boucle en matlab
    Par invite5588902a dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 06/10/2004, 14h04