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 :

Créer un vecteur suivant l'apparition à partir d'une matrice


Sujet :

MATLAB

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut Créer un vecteur suivant l'apparition à partir d'une matrice
    Bonjour,
    j'ai une matrice soit M(i,j) que je veux la transformer en un vecteur V(k) d'une manière réversible. Comment peut on construire ce vecteur en suivant l'apparition. exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    M=[0 0 1 0 22;
          3 1 1 5 1;
          5 0 1 22 2 ]
    j'aurais donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V=[0 0 0 0 1 1 1 1 1 2 3 5 5 22 22]
    Merci.

  2. #2
    Membre habitué
    Profil pro
    Doctorant
    Inscrit en
    Mars 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 147
    Points : 196
    Points
    196
    Par défaut
    Bonjour

    Je n'ai pas tout à fait compris ton problème avec "de manière réversible" mais au vu de l'exemple, regarde peut être du côté de "sortrows".

    Matersss

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Re, je m'explique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    M=[0 1;0 0;1 1]
    V=reshape(A',1,[])
    ans =
    
         0     1     0     0     1     1
    à partir de là,je veux ordonner ce vecteur selon la probabilité d'apparition:
    V= 0 0 0 1 1 1

    Pour le mot réversible, signifie que je peux à partir de ce vecteur V, reprendre ma matrice de départ.

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    c'est quoi la probabilité d'apparition ?
    et dans ton 1er exemple, j'ai du mal à voir le coté réversible !

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bonjour,
    J'ai pensé à faire ceci pour indiquer la probabilité d'apparition d'un élément et coder efficacement ce vecteur, puisque ces codeurs entropies reposent sur la probabilité.

  6. #6
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    ce que je voulais dire, c'est qu'il me semble que tu n'as pas tout expliqué de ton pb
    d'ou sort ta probabilité d'apparition ?
    moi je vois pas pourquoi 5 serait plus probable que 22 !!

    ensuite que serait curieux de savoir comment tu recréés M à partir de V (données du premier post) (réversibilité)

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bon, pour être un peu claire, j'ai une matrice que je veux la transformer en vecteur. Comment peut on revenir à ma matrice de départ a partir de mon vecteur. Merci

  8. #8
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    je ne trouve pas que tu t’éclaircisse !
    je ne vois pas comment passer de V à M (cf 1er post), à moins de stocker par ailleurs les indexes des valeurs de V dans M
    (ex [V idxVdansM] = sort(M(:).') )
    et là j'utilise sort qui fait un tri croissant, comme dans ton 1er post, mais pas un tri selon la probabilité d'apparition (notion tjrs pas expliquée ??!!??)

    bref, que veux tu faire ?

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    voila j'ai une matrice que je veux la transformer en un vecteur pour effectuer un codage entropique par exemple. Afin de coder efficacement ce vecteur, j'ai pensé donc à regrouper les valeurs semblables (ex: 11010 , j'ai envi avoir ça 00111). ensuite après le traitement, je dois former la matrice selon le vecteur résultant (autrement dit, y'a t'il une fonctionne qui fait le contraire de la commande reshape).

  10. #10
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Citation Envoyé par callofduty Voir le message
    autrement dit, y'a t'il une fonctionne qui fait le contraire de la commande reshape.
    oui
    ...
    la fonction reshape elle même

    lis ceci, particulièrement les trois liens en bas (indexage)

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    bonsoir, j'ai pas comprisje dois faire reshape(reshape(A',1,[]) ? pouvez vous me donner un exemple?pour les liens je les trouve pas

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    la fonction reshape ne fait ce qu'on lui dit de faire : à savoir redimensionner un tableau selon les dimensions passées en paramètre.
    Ceci reshape(A',1,[]), comme expliqué en partie dans le lien donné par le fab va redimensionner ton tableau A selon un vecteur ligne 1xP. Le 1 est pour la première dimension, et le [] pour calculer automatiquement le nombre d'éléments de la deuxième dimension.

    Si tu souhaites faire l'opération inverse, il te faudra spécifier les dimensions d'arrivée.
    Voir aussi Introduction à la gestion des matrices sous MATLAB - IV-C. Redimensionnement

  13. #13
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    Citation Envoyé par callofduty Voir le message
    bonsoir, j'ai pas comprisje dois faire reshape(reshape(A',1,[]) ? pouvez vous me donner un exemple?pour les liens je les trouve pas
    la fonction reshape ... heu comment dire en français ... elle reshape quoi
    plus sérieusement elle modifie la forme d'une matrice
    elle peut donc transformer une matrice en vecteur ... et un vecteur en matrice
    c'est pour ca que je t'ai dis que l'inverse de la fonction reshape, c'est la fonction reshape ... mais avec des arguments "inverse" forcement

    maintenant passer du vecteur ordonné V à la matrice originelle est impossible
    à moins de garder une information complémentaire permettant de "désordonner" V (mais autant garder M non ?)
    c'est à dire soit un vecteur d'index comme je te le suggérais, ou alors peut être que ta fonction d’ordonnancement probabiliste et entropique est réversible ??

  14. #14
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bonjour fab,
    désolé pour le retard, bon si je compte à transformer ma matrice en un vecteur de manière qu'elle soit réversible, qu'elle sera cette commande? et par curiosité qu'elle est l'argument à faire ajouter pour inverser rechape. Merci

  15. #15
    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 : 53 166
    Points
    53 166
    Par défaut
    Citation Envoyé par callofduty Voir le message
    désolé pour le retard, bon si je compte à transformer ma matrice en un vecteur de manière qu'elle soit réversible, qu'elle sera cette commande?
    La réponse a déjà été donnée :

    Citation Envoyé par le fab Voir le message
    je ne vois pas comment passer de V à M (cf 1er post), à moins de stocker par ailleurs les indexes des valeurs de V dans M (ex [V idxVdansM] = sort(M(:).') )
    Citation Envoyé par callofduty Voir le message
    et par curiosité qu'elle est l'argument à faire ajouter pour inverser rechape. Merci
    Tu ne comprends toujours pas comment fonction reshape

    Lis bien le tutoriel Introduction à la gestion des matrices sous MATLAB et également ce défi : RESHAPE plus rapide que son ombre ?

    La fonction reshape ne modifie pas la place des éléments dans un tableau. Elle modifie juste les valeurs de chaque dimension.

    Soit le tableau suivant :

    Il apparait comme ceci dans le Command Window :

    [ 1 3 5
      2 4 6]
    Par contre, il sera stocké comme ceci en mémoire :

    [ 1 
      2
      3
      4
      5
      6 ]
    MATLAB stockera en plus le nombre de lignes (ici 2) et le nombre de colonnes (ici 3).

    Si on fait :

    Le tableau apparait comme ceci :

    [ 1 4
      2 5
      3 6 ]
    Mais il sera toujours stocké comme ceci en mémoire :

    [ 1 
      2
      3
      4
      5
      6 ]
    Seules les informations du nombre de lignes et de colonnes seront été modifiées (nombre de ligne => 3 et nombre de colonnes => 2).

    C'est pour ça que la fonction reshape est très rapide, quelque soit la taille du tableau de départ.
    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)

  16. #16
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bonjour Dut,
    merci pour l'explication, je viens de voir ça! ma question si je dispose d'une certaine redondance dans mon vecteur, comment je peux fair ça: V= 01100010 en V1=00000111

  17. #17
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    on dirait que tu veux faire un tri -> fonction sort

  18. #18
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bonjour fab,
    Exactement ça, je viens de le voir sur google il fallait mettre trier que le mot ordonner. Pour la fonction sort je vais voir, sinon est elle réversible?autrement dit, je peux revenir à mon vecteur de départ aprés le traitement de trier?

  19. #19
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    déjà répondu

    Citation Envoyé par le fab Voir le message
    ... à moins de stocker par ailleurs les indexes des valeurs de V dans M
    (ex [V idxVdansM] = sort(M(:).')
    mais autant garder une copie de M, non ?

    sinon réfléchi 2 mn : comment serait il possible de défaire un tri ?? tu dois conserver l'information d'une manière ou d'une autre !!

  20. #20
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 286
    Points : 105
    Points
    105
    Par défaut
    Bonjour fab,
    je viens de tester la commade sort, elle a double avantage, non seulement ordonner les valeurs ans l'ordre croissant mais aussi regrouper les valeurs selon leur occurence. J'ai pas bien compris votre commande?je peux avoir un exemple svp

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2014, 15h55
  2. Comment dégager des vecteurs à partir d'une matrice en Java ?
    Par FATENMRABET dans le forum Général Java
    Réponses: 3
    Dernier message: 19/09/2013, 09h49
  3. Créer un cube à partir d'une matrice
    Par piflechien73 dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/10/2010, 13h45
  4. Réponses: 8
    Dernier message: 10/02/2010, 17h35
  5. Extraire les vecteurs à partir d'une matrice
    Par samia_6 dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/10/2007, 23h06

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