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 :

Construction des listes à partir d'une matrice


Sujet :

MATLAB

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 195
    Points : 101
    Points
    101
    Par défaut Construction des listes à partir d'une matrice
    Bonsoir,
    Mon Objectif est de construire des listes a partir une matrice. L'idée consiste à supprimer des éléments d'une matrice F selon une condition (j'ai fait une fonction pour ça) et de construire des listes de tel sorte les éléments de chaque liste sont les éléments successives non supprimés de la matrice F;
    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    F=[2 5 4 8 7 6 5 4 7 8;4 5 6 7 1 2 3 8 5 9];
    V=[2 3 5 6 8]
    B1=[2;4]
    B2=[8;7]
    B3=[5;3]
    B4=[7 8;5 9]
    dans cette exemple le vecteur V pressente les éléments à supprimer de la matrice F donc les les liste Bi sont construites par les éléments successives restants.
    Merci de me proposer un petit programme ou bien s'il existe une fonction pour le faire.
    Merci

  2. #2
    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 882
    Points
    52 882
    Par défaut
    Montre nous ce que tu as déjà essayé de faire… une boucle for-end devrait faire l'affaire.

    Avant de commencer, un peu de lecture : Comment créer dynamiquement des variables nommées A1, A2, A3… AN ?
    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)

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 195
    Points : 101
    Points
    101
    Par défaut Construction des listes à partir d'une matrice
    En effet, j'ai développé une fonction qui supprime les points d'intersection entre une droite et un cercle (inclus les points qui existent à l’intérieur du cercle)
    le code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function [T]=suppression(A)
    c=size(A,2);
    VThetaDeg = 0:1:360;
    VTheta = VThetaDeg *pi / 180;
    a=0.01;
    b=0.01;
    R=0.0027;
    XCercle = a + R * cos(VTheta);
    YCercle = b + R * sin(VTheta);
    V=[];
    for i=1:c
        k =((A(1,i)-a)^2)+((A(2,i)-b)^2);
        if (k<(R^2))
           V=[V,i]; 
        end
    end
    A(:,V)=[];
    T=A;
    end
    Apres pour faire une exemple j'ai tracé une droite et le cercle et mon objectif consiste à supprimer les points à l’intérieur et tracer les deux segments.
    par exmple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    F=0:0.001:0.02;
    B=0.01*ones(1,21);
    A=[B;F];
    VThetaDeg = 0:1:360;
    VTheta = VThetaDeg *pi / 180;
    a=0.01;
    b=0.01;
    R=0.0027;
    XCercle = a + R * cos(VTheta);
    YCercle = b + R * sin(VTheta);
    plot(XCercle, YCercle)
    xlim([0,0.02]);
    ylim([0,0.02]);
    [T]=suppression(A)
    plot(A(1,:),A(2,:),'b*')
    quand j’exécute le code avec linestyles '.' j'obtient la droite sans les points supprimés d'ou les deux segments mais quand j'utilise plot ligne continu bien évidement je trouve la même droite, ainsi l'idée d'utiliser des listes afin de mettre chaque groupement de points dans une liste.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 195
    Points : 101
    Points
    101
    Par défaut Construction des listes à partir d'une matrice
    Pour faciliter les taches, je veux trouver une méthode afin de créer un tableau de cellules à partir de la matrice F, ou chaque cellule contienne des éléments successives correspondant a 0 dans la matrice a.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    F=[2 5 4 8 7 6 5 4 7 8;4 5 6 7 1 2 3 8 5 9];
    V=[2 3 5 6 8]
    F(:,V)=NaN;
    a=isnan(F);
    merci pour votre aide

Discussions similaires

  1. Creer des Liste à partir d'une liste
    Par pi_hellz dans le forum Général Python
    Réponses: 5
    Dernier message: 26/09/2013, 09h03
  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. Réponses: 1
    Dernier message: 07/03/2012, 09h10
  4. [Débutant] Creer des classes à partir d'une matrice.
    Par seboututou dans le forum MATLAB
    Réponses: 1
    Dernier message: 05/10/2011, 20h49
  5. Réponses: 4
    Dernier message: 19/07/2006, 10h07

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