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 :

Manipulation de vecteurs et matrices


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Points : 47
    Points
    47
    Par défaut Manipulation de vecteurs et matrices
    Voila, je suis bloquée par quelque chose d'assez bête mais que je n'arrive pas à resoudre:

    J'ai une matrice M de dimension IxJ, avec I un très grand nombre.
    J'ai un vecteur V de dimension 1xJ.

    Je voudrais obtenir une matrice de dimension IxJ composée uniquement de vecteurs lignes V.

    Par exemple, si V = [2 3 4 5 6]
    Je voudrais :

    M = [2 3 4 5 6; 2 3 4 5 6; 2 3 4 5 6]

    ou encore

    M = [V;V;V]

    Le problème est que le nombre de lignes de M est vraiment énorme, donc je me vois mal initialiser M de la même façon que ci-dessus.

    Il y a-t-il une autre façon de procéder?

    Merci d'avance

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut!
    Bon je suis pas un expert en matlab mais j'aurais fait ca moi:
    (il y a peut etre une fonction qui fait ca sur matlab!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    V=[2 3 4 5];
    nb_ligne=200;
     
    for i=1:nb_ligne
       M(i,:)=V;
    end
    Voila
    a+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Oui effectivement, c'est ce que j'ai fait aussi...

    Malheureusement, étant donné les dimensions assez importantes de mes matrice, cela devient ultra-lent, ce qui ne m'avantage pas trop dans le traitement que je dois effectuer...

    Si quelqu'un aà une autre idée, elle est la bienvenue

  4. #4
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    Pour repluiquer ton vecteur V , utilises la fonction repmat
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  5. #5
    Membre du Club Avatar de NELLLY
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Points : 50
    Points
    50
    Par défaut
    Salut,
    tu peux faire comme suit:

    nombre de lignes de M est L.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    V=[2 3 4 5];
    M=ones(L,1)*V;

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 73
    Points
    73
    Par défaut
    Citation Envoyé par NELLLY Voir le message
    Salut,
    tu peux faire comme suit:

    nombre de lignes de M est L.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    V=[2 3 4 5];
    M=ones(L,1)*V;
    Ou utiliser le tony's trick (dans la fcn repmat) :

    M = V(ones(L , 1) , : );

  7. #7
    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 884
    Points
    52 884
    Par défaut
    Peut-on savoir à quoi te sert de répliquer le vecteur V ?
    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)

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/09/2008, 08h54
  2. Empiler des éléments de N vecteurs en Matrice?
    Par maiza_med dans le forum MATLAB
    Réponses: 3
    Dernier message: 28/04/2008, 11h56
  3. [STL] Manipuler des vecteurs de vecteur
    Par FabaCoeur dans le forum SL & STL
    Réponses: 6
    Dernier message: 28/04/2007, 20h09
  4. Créer une matrice en manipulant un vecteur
    Par bernard6 dans le forum MATLAB
    Réponses: 3
    Dernier message: 07/04/2007, 11h34
  5. [MFC] Manipuler un vecteur d'objets
    Par Yellowmat dans le forum MFC
    Réponses: 4
    Dernier message: 13/07/2005, 14h37

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