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 :

Remplissage d'un vecteur avec valeur milieu imposée


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 82
    Points : 63
    Points
    63
    Par défaut Remplissage d'un vecteur avec valeur milieu imposée
    Bonjour,
    je cherche à définir un vecteur entre -n et +n passant par 0 ce qui donne donc 2n+1 points. Comment faire en sorte que le vecteur contienne la valeur 0 quelque soit le pas. En effet, si 2n/pas n'est pas entier, on va 'sauter' 0.
    On peut définir [0:n] puis concaténer [0:-n] retourné mais ca ne me parait pas élégant.
    Une solution plus classe à proposer?
    Merci,
    Adrien

  2. #2
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 142
    Points : 94
    Points
    94
    Par défaut
    essaye d'utiliser une boucle if suivant la parité de n comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >> L=5;r=1;M=(L-r)/2;-M:M
     
    ans =
     
        -2    -1     0     1     2
     
    >> L=6;r=0;M=(L-r)/2;-M:M
     
    ans =
     
        -3    -2    -1     0     1     2     3
     
    >>

  3. #3
    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
    Citation Envoyé par amarion Voir le message
    Bonjour,
    je cherche à définir un vecteur entre -n et +n passant par 0 ce qui donne donc 2n+1 points. Comment faire en sorte que le vecteur contienne la valeur 0 quelque soit le pas. En effet, si 2n/pas n'est pas entier, on va 'sauter' 0.
    On peut définir [0:n] puis concaténer [0:-n] retourné mais ca ne me parait pas élégant.
    Une solution plus classe à proposer?
    Merci,
    Adrien
    ?? Je ne vois pas pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pas*(-n:n) % t'es sûr d'avoir 0
    Ils ne savaient pas que c’était impossible, alors ils l’ont fait

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 82
    Points : 63
    Points
    63
    Par défaut n non entier
    En fait, n n'est pas entier. Il peut valoir par exemple 10.7. Dans ce cas, le zéro n'est pas garanti.

  5. #5
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Points : 1 256
    Points
    1 256
    Par défaut
    Tout depend du pas que tu veux prendre.

    Ceci te conviens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vect = (-round(n):round(n))*n/round(n);
    Tu change round(n) par k si tu veux avoir k éléments dans ton vecteur:

    ++
    AlloSchool, votre école sur internet.

  6. #6
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 142
    Points : 94
    Points
    94
    Par défaut
    desolé je n'avais pas bien compris ce que tu veux faire.
    Essaye ca : pour creer un vecteur de 19 points entre vmin et vmax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    vmin=-2.41;
    vmax=3.17;
    Dleft=linspace(vmin,0,10);
    Dright=linspace(0,vmax,10);
    D = [Dleft(1:end-1) 0 Dright(2:end)]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 82
    Points : 63
    Points
    63
    Par défaut OK
    Merci pour les réponses.
    J'ai finalement fait comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            y=[0:pas:3*sy];
            y=[-y(end:-1:2),y];
    Adrien

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

Discussions similaires

  1. Courbe avec remplissage - probléme avec valeurs négatives
    Par jourzebest dans le forum QlikView
    Réponses: 1
    Dernier message: 21/04/2015, 10h20
  2. [WD16] Remplissage fichier avec valeurs de plusieurs requête
    Par JustineJ dans le forum WinDev
    Réponses: 7
    Dernier message: 11/08/2011, 10h18
  3. Réponses: 2
    Dernier message: 06/04/2007, 11h30
  4. [Swing]remplissage d'un JTable avec les vecteur
    Par 3adoula dans le forum Composants
    Réponses: 7
    Dernier message: 15/06/2004, 16h09
  5. Réponses: 13
    Dernier message: 14/10/2003, 14h31

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