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éation vecteur depuis un autre


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 98
    Points : 37
    Points
    37
    Par défaut Création vecteur depuis un autre
    Bonjour,

    Je dispose des vecteurs :

    a = [1 2 3 4]

    b = [2 3]

    Comment calculer un vecteur c qui prendrait pour valeurs les valeurs non présentes en b depuis les vecteurs a et c (ici c = [1 4]) ?
    Le problème étant que a et b n'ont pas la même dimension.

    Je vous remercie

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 245
    Points : 110
    Points
    110
    Par défaut
    si b ne contient pas beaucoup de valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c = a(:) ~= b(1)
    d = a(:) ~= b(2)
    reponse = a(c & d)
    après il doit y avoir mieux, notamment si b contient beaucoup de valeur où cette méthode deviendrait assez lourde.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 98
    Points : 37
    Points
    37
    Par défaut
    Salut,

    Merci pour ta réponse.

    Le vecteur A que je dois traiter contient près de 400 valeurs, alors ça risque d'être en effet assez lourd.

  4. #4
    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,


    Sinon la fonction MATLAB qui permet de résoudre ce genre de problème :

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2007
    Messages : 245
    Points : 110
    Points
    110
    Par défaut
    dans ma méthode c'est la taille de b surtout qui pause problème, a peut importe.

    merci pour setdiff, je connaissais pas

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 98
    Points : 37
    Points
    37
    Par défaut
    Merci beaucoup !

    400 valeurs dont je dois retrancher environ les 3/4.

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 316
    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 316
    Points : 52 947
    Points
    52 947
    Par défaut
    Citation Envoyé par magelan Voir le message
    Une alternative :

    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
    clear all
    clc
     
    a = [1 2 3 4];
    b = [2 3];
    a = repmat(a,1,100);
     
    tic
    c = setdiff(a,b);
    toc
     
    tic
    cc = a(~ismembc(a,b));
    cc = unique(cc);
    toc
    Elapsed time is 0.064857 seconds.
    Elapsed time is 0.001102 seconds.

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

Discussions similaires

  1. Création dossier sur serveur depuis un autre serveur
    Par smartnouse dans le forum Administration
    Réponses: 0
    Dernier message: 30/08/2013, 12h55
  2. Classer un vecteur depuis un autre
    Par Enriac dans le forum R
    Réponses: 5
    Dernier message: 21/03/2013, 20h48
  3. [Débutant] création d'onglet (tabpage) depuis un autre formulaire.
    Par impacto dans le forum C#
    Réponses: 2
    Dernier message: 04/09/2011, 16h59
  4. Réponses: 2
    Dernier message: 21/05/2010, 17h15
  5. Comment basculer le focus depuis une autre form ?
    Par altahir007 dans le forum Composants VCL
    Réponses: 9
    Dernier message: 03/09/2003, 15h54

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