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 :

Extraction d'un vecteur


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 54
    Points : 30
    Points
    30
    Par défaut Extraction d'un vecteur
    Bonjour à tous;
    J’ai deux questions :

    1. Si j’ai un vecteur,je cherche un vecteur VV tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VV=[2; 2 ; 2 ;5 ; 5 ; 5 ; 7 ; 7 ; 7] ?

    2. Si j’ai une matrice A carrée d’ordre 5:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A=[33 44 55 22 11;11 22 44 66 44;33 99 88 11 77;22 44 33 44 77 ;44 22 33 11 11]
    et deux matrices B et C contenant les indices lignes et colonnes de A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     B=[3 2 1 ;2 3 1 ;4 2 1 ;2 4 1 ;4 3 1 ;3 4 1]
    C=[5 4 ;5 3 ;5 2]
    Je cherche un vecteur X tel que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X=[A(C(1,end),B(1,1)) ; A(C(1,end),B(2,1)) ; A(C(2,end),B(3,1)) ; A(C(2,end),B(4,1)) ; A(C(3,end),B(5,1)) ; A(C(3,end),B(6,1)) ]
    ie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     X=[33;44;11;99;66;44]??
    merci

  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,

    Pour être franc, je n'ai pas compris ce que tu souhaites/ce que tu attends de nous. Quelles sont les questions exactement?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VV = [V(1);V(1);V(1);V(2);V(2);V(2);V(3);V(3);V(3)
    ?
    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
    Janvier 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Merci pour votre reponse:
    VV = [V(1);V(1);V(1);V(2);V(2);V(2);V(3);V(3);V(3)
    mais si je doubler les éléments par exemple 10 fois ,donc je trouve ton idée long non?

    ma question c'est comment trouver les vecteurs VV et X d'une façon optimisée?
    merci

  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
    Ok, dans ce cas tu peux utiliser une boucle pour VV

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i = 1:length(V)
        VV(1+(i-1)*3:i*3,1) = V(i);
    end
    Je regarde plus tard pour la seconde question.

    PS: tu peux entrer en paramètre le nombre de répétitions de ta variable =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    parameter = 3;
    for i = 1:length(V)
        VV(1+(i-1)*parameter:i*parameter,1) = V(i);
    end
    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
    Janvier 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Merci,
    mais est ce qu'il possible sans boucle?

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Points : 242
    Points
    242
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Temp = repmat(V',nb_repetitions,1);
    VV = Temp(:);

  7. #7
    Invité
    Invité(e)

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    Merci Dombri;
    salut Winjerome et merci bien:
    donc d’après vous j'ai ecrit ce code pour X:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    rows=kron(C( :,end),ones(2,1))
    cols=B(:,1)
    X=A( sub2ind(size(A),rows,cols) )
    est ce que vous avez mieux que ça?

    J’ai une autre question:
    Je cherche un moyen de récupérer les indices de lignes de C et B corresponds à la première valeur max de X
    Donc ds l’exemple :
    La valeur max est :99
    Les indices de lignes corresponds :
    Pour B c’est 4
    Pour C c’est 2 ??


    merci

  9. #9
    Membre habitué
    Homme Profil pro
    Doctorant LNE Trappes
    Inscrit en
    Mai 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant LNE Trappes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 64
    Points : 174
    Points
    174
    Par défaut
    1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    V=[2 ; 5 ;7];
    VV=kron(V, ones(3,1))
    2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    e=[kron(C(:,end),ones(2,1)),B(:,1)];
    X=diag(A(e(:,1),e(:,2)))
    3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [c,b]=find(A==max(A(:)));
    indice_C=find(C(:,end)==c)
    indice_B=find(B(:,1)==b)

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/08/2011, 14h15
  2. extraction de donnees vers vecteur c++
    Par quantanalyst dans le forum C++
    Réponses: 12
    Dernier message: 20/08/2008, 09h59
  3. Réponses: 1
    Dernier message: 13/12/2007, 16h43
  4. Extraction à partir d'un vecteur
    Par jena dans le forum MATLAB
    Réponses: 10
    Dernier message: 27/04/2007, 09h06

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