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 :

Ordonnancement très compliqué


Sujet :

MATLAB

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut Ordonnancement très compliqué
    Bonjour,

    J'ai un problème d'ordonnancement que je trouve assez compliqué
    Je m'explique:

    ==> DONNEES:
    1°) j'ai un tableau excel de donnees à 29lignes et 12colonnes, où la premiere colonne represente des angles.
    [voir piece jointe 1]

    2°) J'ai un vecteur A (sous matlab) qui fait 130lignes qui représente des angles.

    ==> ORDONNANCEMENT:
    1°) Dans un premier temps je vais importer mon tableau sous matlab pour avoir une matrice avec la fonction xlsreasd (pour ca je n'aurais pas de probleme je pense c'est pls la suite qui m'intrigue)

    2°) Je souhaiterai ensuite insérer les angles que contient le vecteur A dans la premiere colonne de la matrice en gardant l'ordre croissant des angles et que pour chaque angle inseré la ligne qui sera donc realisé soit une ligne avec que des 0.
    [voir piece jointe 2]

    J'espere que vous pourrez m'aider....



  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    ça ne me parait pas très compliqué ou alors je n'ai pas compris

    il te suffit de créer un tableau de zéros et de remplir ta première colonne avec ta matrice A... As-tu codé quelque chose?
    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.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par magelan Voir le message
    Bonjour,

    ça ne me parait pas très compliqué ou alors je n'ai pas compris

    il te suffit de créer un tableau de zéros et de remplir ta première colonne avec ta matrice A... As-tu codé quelque chose?
    je sais pas comment m'y prendre, en faite je veux inserer les valeurs dans les lignes de la matrice A et pour chaques ligne insere mettre des 0 dans toutes les autres colonnes....

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Je vais essayer sur un exemple plus petit car il manque des informations.
    Hypothèses :
    - ton vecteur A contient tous les angles donc même ceux qui sont dans la 1ère colonne de ton tableau.
    - le Tableau Excel est ordonnancé suivant la 1ère colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    M = [1 2 3;4 5 6;7 8 9]; %tableau recupere d'Excel
    A = (1:10)';%tous les angles
    res = zeros(length(A),size(M,2));%tableau de zéros
    res(:,1) = A; %1ère colonne = tous les angles
     
    %il faut récuperer les indices des angles de la 1ere colonne M qui sont dans A
    [tf,idx] = ismember(A,M(:,1));
     
    res(:,idx) = M
    Je n'ai pas MATLAB pour tester mais ça doit être à peu près ça.
    Règles du Forum

    Adepte de la maïeutique

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci de ta reponse

    Citation Envoyé par Caro-Line Voir le message
    - ton vecteur A contient tous les angles donc même ceux qui sont dans la 1ère colonne de ton tableau.
    - le Tableau Excel est ordonnancé suivant la 1ère colonne
    en faite non le vecteur A ne contient pas forcement tous les angles qu'il y a dans la premiere colonne de la matrice.


    je pensais tout mettre dans une matrice et faire un sort(....) mais je ne sais pas comment avec un sort garder à la fois l'ordonnancement de lignes et colonnes....

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Alors pour ordonnancer par rapport à une colonne un tableau c'est simple avec SORTROWS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    M = [4 5 6;1 2 3;7 8 9;2 4 6]
    res = sortrows(M);%ordonnancement de la 1ère colonne
    Donc une possibilité pour toi serait de faire ainsi :
    - enlever de A les valeurs qui sont déjà dans la 1ère colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [tf,idx] = ismember(A,M(:,1));
    A(idx)=[]
    - Rajouter à la fin de M un tableau contenant A en 1ère colonne et des zéros après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    res = zeros(length(A),size(M,2));%tableau de zéros
    res(:,1) = A; %1ère colonne = tous les angles
    M = [M;res]
    - Ordonner la matrice résultante suivant la 1ère colonne
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci beaucoup!!!

    je n'ai pas procédé comme ceci mais votre message m'a bien aidé car je ne connaissé pas "sortrows"

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

Discussions similaires

  1. [AC-2010] Gestion des stocks avec plusieurs magasins très compliqué
    Par DJOUFOU dans le forum Access
    Réponses: 4
    Dernier message: 18/05/2014, 18h27
  2. [WD17] un processus de comptage et de selection trés compliqué
    Par hadaf dans le forum WinDev
    Réponses: 31
    Dernier message: 12/02/2013, 10h21
  3. [Débutant] Petit logiciel mais très compliquer pour moi :(
    Par Antonely93 dans le forum VB.NET
    Réponses: 4
    Dernier message: 14/01/2013, 19h28
  4. [XL-2003] une boucle très compliquée!
    Par moi244 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/02/2012, 19h46
  5. MPI petite question pas trés compliqué
    Par Hurri dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 24/06/2008, 16h10

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