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 :

Additionner 2 vecteurs colonne taille différente


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Additionner 2 vecteurs colonne taille différente
    Bonjour,


    Voici donc mon probleme :

    J'ai des données numérique rangés dans des matrices différentes A[2x10] et B[2x11] pour simplifier
    Les premières colonnes des matrices sont des données temporelles égales A(1:10,1) = B(1:10,1)
    Et comme elles sont égale je peux donc traiter les données des autres colonnes ensembles

    J'aimerai faire une moyenne des deux autres colonnes du style C = ( A(:,2) + B(:,2) )/ 2

    Comment dire à Matlab ou quel opérateur d'addition permet d'ignorer les données qui ne sont pas jumelées ?
    Comment additionner les valeur éléments par éléments ? Ou au pire mettre un NaN voir un 0 dans la dernière colonne de C ?

    Sachant que des fois c'est A qui a une valeur en plus par rapport à B ou même 2 valeurs j'ai bien peur qu'un simple B(1:end-1,2) soit inefficace.


    Merci pour votre temps.

    BadPanda

  2. #2
    Membre expérimenté Avatar de lecteur1001
    Inscrit en
    Mai 2009
    Messages
    1 526
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1 526
    Points : 1 554
    Points
    1 554
    Par défaut
    Citation Envoyé par BadPanda Voir le message
    Comment dire à Matlab ou quel opérateur d'addition permet d'ignorer les données qui ne sont pas jumelées ?
    Si B a toujours plus de valeurs que A alors je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C = A(:,2)+B(size(A,1),2)
    De cette manière, quelle que soit la taille de A, ça fonctionnera. Ça te convient ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ah merci ça t'as peut-être paru bête mais j’étais vraiment bloqué, merci de m'avoir mis sur la piste j'y aurais encore été demain.

    Du coup petite modification de ta réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C = A(:,2)+B(1:size(A,1),2)
    Et pour résoudre le fait que parfois A est plus grand que B j'ai codé ça comme un enfant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C = A(1:min(size(A,1),size(B,1)),2)+B(1:min(size(A,1),size(B,1)),2)
    C'est moche, c'est long mais ça marche !

    Merci encore pour le dépannage.

Discussions similaires

  1. Comparaison de vecteurs de taille différentes
    Par Tonton Ricardo dans le forum MATLAB
    Réponses: 11
    Dernier message: 05/08/2008, 10h52
  2. Correspondance entre deux vecteurs de taille différente
    Par MisterK dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 31/03/2008, 18h07
  3. Réponses: 2
    Dernier message: 05/02/2008, 12h47
  4. Réponses: 4
    Dernier message: 05/05/2007, 20h12
  5. Réponses: 1
    Dernier message: 29/03/2007, 20h17

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