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 :

Changer positions des elements dans un vecteur defini en matlab


Sujet :

MATLAB

  1. #1
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut Changer positions des elements dans un vecteur defini en matlab
    J'ai un projet en mathematiques et je me suis confronte avec le probleme suivant.

    J'ai un vecteur v1 , dans la variable v2 je fais une ordonnation ascendante en utilisant sort et puis je veux changer la position des 2 derniers elements dans mon vecteur v2.

    Donc un petit example:

    v1 c'est le vecteur initial
    Puis on fais un sort pour obtenir en v2=[1 2 3 4 5]


    Et du vecteur v2 je veux changer les elements des 2 derniers position pour que dans la variable v3 mon vecteur devient:

    v3=[1 2 3 5 4]

    J'ai essaye avec ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    >> v3 = v2(1:3 [5 4])
    Mais j'obtiens une erreur en command window:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Error: Unbalanced or misused parentheses or brackets.
    J'attends votre aide svp!

    Merci en avance!

  2. #2
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Salut

    Essaye ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    v3 = v2(1,[1:3 5 4])
    ++

    EDIT : ou encore plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    v3 = v2([1:3 5 4])

  3. #3
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Salut Dam!

    Merci pour ton reponse tres vite!

    Pour ca ca me donne:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    >> v3 = v2([1:3 5 4])
    v3 =

    1 2 3 4 4


    Et je veux afficher en v3=1 2 3 5 4. (changer les deux derniers elements de mon vecteur) donc element 5 c'est sur la position 4 dans le vecteur et l'element 4 c'est sur la position 5 dans le vecteur v3.

    J'espere d'avoir bien explique ce que je desire faire!


    Et avec ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >> v3 = v2(1:3 [5 4])
    ??? v3 = v2(1:3 [5 4])
                    |
    Error: Unbalanced or misused parentheses or brackets.
    Ca me donne la meme erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ??? v3 = v2(1:3 [5 4])
                    |
    Error: Unbalanced or misused parentheses or brackets.
    Merci beacoup pour ton reponse tres vite!

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Bonjour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    clear
    v1=[5 2 1 3 4]
    v2=sort(v1)
    v3=[v2(1:3) 5 4]

  5. #5
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par phryte Voir le message
    Bonjour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    clear
    v1=[5 2 1 3 4]
    v2=sort(v1)
    v3=[v2(1:3) 5 4]
    Merci a tous les deux!

    Merci phryte!

    C'est genial! Ca marche exactement comme je veux!

    Je marque comme resolu!

  6. #6
    Membre confirmé
    Avatar de Dam2227
    Inscrit en
    Juin 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Juin 2007
    Messages : 343
    Points : 487
    Points
    487
    Par défaut
    Euh, je ne comprend pas ce qui ne va pas avec la ligne de commande :

    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
     
    v1=[5 2 1 3 4]
     
    v1 =
     
         5     2     1     3     4
     
    >> v2=sort(v1)
     
    v2 =
     
         1     2     3     4     5
     
    >> v3 = v2([1:3 5 4])
     
    v3 =
     
         1     2     3     5     4
    ça marche très bien pour moi...

  7. #7
    Membre extrêmement actif
    Avatar de mihaispr
    Inscrit en
    Décembre 2008
    Messages
    1 025
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 025
    Points : 858
    Points
    858
    Par défaut
    Merci beacoup encore!


  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Points : 2 841
    Points
    2 841
    Par défaut
    Peux-être mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v3=[v2(1:3) v2(end) v2(end-1)]

  9. #9
    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 951
    Points
    52 951
    Par défaut
    Citation Envoyé par phryte Voir le message
    Peux-être mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v3=[v2(1:3) v2(end) v2(end-1)]
    Je pense qu'il est plus efficace de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v3 = v2([1:3 end:-1:end-1]);
    Ou si v2 n'est qu'une simple variable intermédiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v2([end-1:end]) = v2([end:-1:end-1])

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

Discussions similaires

  1. changer de positionnement des elements dans un array
    Par watle dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 09/04/2010, 10h45
  2. Détection position des yeux dans une image
    Par Morvan Mikael dans le forum Traitement d'images
    Réponses: 16
    Dernier message: 24/12/2008, 23h09
  3. Somme des éléments dans plusieurs fichiers.
    Par AjJi dans le forum Linux
    Réponses: 2
    Dernier message: 11/06/2006, 00h51
  4. [langage] Compter des éléments dans un tableau
    Par helene22500 dans le forum Langage
    Réponses: 29
    Dernier message: 23/05/2005, 11h38
  5. Inserer des elements dans une map sans rangement ?
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 07/09/2004, 11h09

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