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 :

matrice comprenant des 0 et des 1


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2014
    Messages : 35
    Points : 33
    Points
    33
    Par défaut matrice comprenant des 0 et des 1
    Bonjour,
    j'aimerais créer une matrice contenant des 0 et des 1 de la façon suivante:
    j'ai 5 variables composées chacune de 3 modalités. La matrice que je veux créer représente toutes les combinaisons possibles de ces modalités: sur chaque ligne de ma matrice, il doit y avoir un 1 pour une et une seule modalité de chacune des variables. Chaque ligne est une possiblité, et je les veux toutes (soit 3^5 lignes).
    Comment puis-je faire ça? Merci d'avance pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour, je suis également débutant, je ne suis donc pas sûr de pouvoir t'apporter grande aide. J'aimerai néanmoins comprendre, tu désires obtenir un tableau de 15 colonnes pour 3^5 lignes c'est bien ça? 15 colonnes car 5 variables avec 3 valeurs possible pour chacune des variables?

    Si je ne me trompe pas, je pense que ça doit être faisable avec des boucles for même si cela ne doit clairement pas être la solution la plus élégante.

    Gooby
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2014
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Bonjour Gooby,
    oui c'est exactement ça!
    j'essaie avec des boucles for, mais je n'arrive pas à indicer sur les lignes..
    en gros, en brouillon de pseudo code ça donne ça, mais il faut qu'à chaque fois que je suis dans un nouveau cas, je crée une nouvelle ligne, c'est ça que je n'arrive pas à faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for a=1..3{
    	M[i,a]=1
    	for b=1..3{
    		M[i,b+3]=1
    		for c=1..3{
    			M[i,c+6]=1
    			for d=1..3{
    				M[i,d+9]=1
    				for e=1..3{
    					M[i,e+12]=1
     
     
    }}}}}

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Tu peux essayer ça, on dirait que ça marche, même si je pense qu'un vrai développeur aurait trouvé une solution bien plus propre et rapide.

    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
    A = zeros(3^5,15);
    c=1;
     
    for i = 1:3
        for j = 1:3
                for k = 1:3
                        for l = 1:3
                                for m = 1:3
                                    A(c,i)=1;
                                    A(c,3+j)=1;
                                    A(c,6+k)=1;
                                    A(c,9+l)=1;
                                    A(c,12+m)=1;
                                    c=c+1;
                                end
                        end
                end
        end
    end
    Edit: comme tu peux le voir c'est plus ou moins ce que tu as fait, j'ai juste rajouté un compteur "c" afin de passer à la ligne suivante après l'écriture de chaque ligne.

    Gooby
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2014
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    merci beaucoup, ça marche très bien

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/10/2009, 10h36
  2. Trigger pour mettre des droits sur des procedures et des vues
    Par briino dans le forum Développement
    Réponses: 3
    Dernier message: 23/09/2009, 09h44
  3. Réponses: 4
    Dernier message: 02/04/2008, 17h51
  4. Réponses: 3
    Dernier message: 13/09/2007, 18h11
  5. Réponses: 3
    Dernier message: 23/01/2007, 08h14

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