Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Invité de passage
    Homme Profil pro Benoit
    Étudiant
    Inscrit en
    janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoit
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : janvier 2013
    Messages : 38
    Points : 0
    Points
    0

    Par défaut indexation par une fonction

    Bonjour à tous,
    Je cherche à indexer des valeurs d'une matrice M [1,n] par une fonction.
    CAD, créer une nouvelle matrice où seront stockées les valeurs à partir de la 10 lignes toutes les 8 lignes jusqu'à la dernière afin de pouvoir la visualiser sur un graphe.
    Merci par avance pour votre aide

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro Florent
    Ing. Aérospatiale
    Inscrit en
    juin 2003
    Messages
    711
    Détails du profil
    Informations personnelles :
    Nom : Homme Florent
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2003
    Messages : 711
    Points : 950
    Points
    950

    Par défaut

    Je pense que tu peux t'en sortir avec la fonction reshape
    Tu commences par enlever les 10 premières lignes, tu transformes ta matrice [1,n] en matrice [8, n/8] et tu gardes la première ligne seulement.
    Matlab 7.9.1.705 R2009b SP1 | XP SP3
    Pas de question technique par MP, Merci

  3. #3
    Modérateur

    Inscrit en
    août 2007
    Messages
    4 321
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 4 321
    Points : 5 707
    Points
    5 707

    Par défaut

    Bonjour,

    Citation Envoyé par hilibili Voir le message
    Je cherche à indexer des valeurs d'une matrice M [1,n] par une fonction.
    C'est bien une matrice n lignes et une colonne? en général avec matlab, le premier nombre donne le nombre de lignes et le deuxième le nombre de colonnes, comme tu as inversé je préfère demander.

    Si c'est bien cela :
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  4. #4
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro Florent
    Ing. Aérospatiale
    Inscrit en
    juin 2003
    Messages
    711
    Détails du profil
    Informations personnelles :
    Nom : Homme Florent
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2003
    Messages : 711
    Points : 950
    Points
    950

    Par défaut

    Pourquoi faire simple quand je trouve une solution compliquée
    Matlab 7.9.1.705 R2009b SP1 | XP SP3
    Pas de question technique par MP, Merci

  5. #5
    Invité de passage
    Homme Profil pro Benoit
    Étudiant
    Inscrit en
    janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoit
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : janvier 2013
    Messages : 38
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par magelan Voir le message
    Bonjour,


    C'est bien une matrice n lignes et une colonne? en général avec matlab, le premier nombre donne le nombre de lignes et le deuxième le nombre de colonnes, comme tu as inversé je préfère demander.

    Si c'est bien cela :
    Bonjour,
    Merci pour toute vos réponses.
    Puis-je remplacer le chiffre 8 par une formule ? J'entend par la quelque chose de la forme :

    Code :
    1
    2
    for i=1: x
    M2=M(10 : (8*i/45):end) ;
    Merci beaucoup !

  6. #6
    Modérateur

    Inscrit en
    août 2007
    Messages
    4 321
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 4 321
    Points : 5 707
    Points
    5 707

    Par défaut

    Bien sur, il suffit de tester mais cela devrait marcher.

    Petite remarque : telle que tu l'as écrit, M2 est écrasé à chaque itération.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    Invité de passage
    Homme Profil pro Benoit
    Étudiant
    Inscrit en
    janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoit
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : janvier 2013
    Messages : 38
    Points : 0
    Points
    0

    Par défaut

    Citation Envoyé par magelan Voir le message
    M2 est écrasé à chaque itération.
    Comment éviter ce phénomène svp ?

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2007
    Messages : 640
    Points : 709
    Points
    709

    Par défaut

    Il suffit pour cela d'utiliser un indice pour le stockage des infos de M2.

    L'idée étant la suivante :

    Code :
    1
    2
    3
    for i=1: x
    M2(u)=M(10 : (8*i/45):end) ;
    end
    Avec u l'indice qui va bien ;-) Tu devrais avoir toutes les infos nécessaire pour avancer.
    Un dernier truc : pense à la préallocation si tu connais la taille de M2.

  9. #9
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro Florent
    Ing. Aérospatiale
    Inscrit en
    juin 2003
    Messages
    711
    Détails du profil
    Informations personnelles :
    Nom : Homme Florent
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2003
    Messages : 711
    Points : 950
    Points
    950

    Par défaut

    Remarque : tu dois t'assurer que (8*i/45) est entier (puisque c'est un index).
    Tu peux utiliser "ceil" par exemple pour arrondir à l'entier supérieur (tu ne veux pas que (8*i/45) fasse 0!).
    Matlab 7.9.1.705 R2009b SP1 | XP SP3
    Pas de question technique par MP, Merci

  10. #10
    Invité de passage
    Homme Profil pro Benoit
    Étudiant
    Inscrit en
    janvier 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Nom : Homme Benoit
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : janvier 2013
    Messages : 38
    Points : 0
    Points
    0

    Par défaut

    Merci beaucoup pour votre aide tout fonctionne correctement !

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •