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 :

MATLAB et les vecteurs


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 7
    Points
    7
    Par défaut MATLAB et les vecteurs
    salut , alors j'ai un problème , j'ai envie d'écrire un programme sous m.file
    et ce programme consiste à écrire un vecteur par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x=input('donné les valeur de vecteur')
    et après l'exécution, je tape le vecteur, je suis obligé de l'écrire comme ça [1 2 3 5] ,
    alors comment je doit faire pour éviter d'écrire les [] sur la fenêtre de commande ?

    par exemple : si j'écris sur la page m file ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x=input('introduit une couleur')
    sur la page de commande je doit écrire par exemple 'rouge'

    et la meilleure méthode c'est d'écrire sur m file :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x=input('introduir une couleur','s')
    et comme ça je n'ai qu'à écrire sur la fenêtre de commande rouge , comme ça j'évite les ' '

    et je veux la même chose pour les vecteur, je veux dire qu'est-ce que je dois écrire pour éviter les [ ] dans la fenêtre de commande et merci

  2. #2
    Membre actif Avatar de LordPeterPan2
    Inscrit en
    Février 2007
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Prend les input comme une chaine de caractère puis change cette chaine en vecteur via str2num :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     A=input('blabla','s')
    blabla 1 2 3 36.9
     
    A =
     
     1 2 3 36.9
     
    >> str2num(A)
     
    ans =
     
        1.0000    2.0000    3.0000   36.9000

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 7
    Points
    7
    Par défaut ça ne marche pas
    ça ne marche pas comme ça , car je ne peux pas faire a(1)+a(2), ça ne donne pas le résultat souhaité

  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 828
    Points
    14 828
    Par défaut
    Ce n'est pas l'objectif de la fonction INPUT qui est une fonction de base permettant de demander à l'utilisateur de rentrer soit un nombre, soit une chaine de caractère (avec l'option 's').
    Vu que tu as l'air de vouloir que l'utilisateur puisse mettre tout et n'importe quoi (qui reste à définir d'ailleurs), il va falloir que tu définisses ta propre fonction qui traitera ce qui a été rentré par l'utilisateur.

    Et quand tu dis que "ça ne marche pas" pour a(1)+a(2) il faudrait nous expliquer ce que tu attends comme résultat, on ne peut pas deviner.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 7
    Points
    7
    Par défaut je veux plus d explication ?
    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      x=input('valeur vecteur');
     z=x(1)+x(3)
    après execution :

    valeur vecteur
    [1 2 5 4 6 3]

    z=
    6
    mais avec cette méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     x=input('valeur vecteur','s')
    num2str(x);
    z=x(1)+x(3)
    après éxecution
    le vecteur s'affiche :
    1 2 5 4 6 3
    mais la valeur de z n'est pas juste

  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 828
    Points
    14 828
    Par défaut
    As-tu essayé de comprendre ce que tu faisais ?
    Dans la 2ème méthode x est une chaine de caractères.
    Avant de l'utiliser comme nombre tu dois donc le transformer en nombre et c'est sur ce nombre que tu feras ton calcul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x=input('valeur vecteur','s')
    xnum = str2num(x);
    z=xnum(1)+xnum(3)
    Ceci dit je ne vois toujours pas l'intérêt de tout ceci.

Discussions similaires

  1. [Débutant] les vecteurs avec matlab
    Par nina02 dans le forum MATLAB
    Réponses: 6
    Dernier message: 17/04/2011, 19h45
  2. Probleme avec les vecteurs.
    Par Fred2209 dans le forum C++
    Réponses: 5
    Dernier message: 13/11/2006, 19h06
  3. travailler avec les images et les vecteurs
    Par susimido dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 24/04/2006, 16h02
  4. [Swing]remplissage d'un JTable avec les vecteur
    Par 3adoula dans le forum Composants
    Réponses: 7
    Dernier message: 15/06/2004, 17h09

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