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 :

[slice] fonction en deux morceaux


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 34
    Points : 32
    Points
    32
    Par défaut [slice] fonction en deux morceaux
    Bonjour à tous,

    Je souhaiterais visualiser une fonction f(x,y,z) en utilisant l'outil slice de matlab. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    [x,y,z] = meshgrid(-10:1:10,-10:1:10,-10:1:10);
     
    if (x > 0)
    v = x.^2+y.^2+z.^2;
    else 
    v = z;    
    end
     
    xslice = []; yslice = 0; zslice = [];
    slice(x,y,z,v,xslice,yslice,zslice)
    colormap hsv
    Ma fonction vaut en effet x^2+y^2+z^2 lorsque x >0 et vaut z pour x < =0.

    Seule la valeur de z est plotée dans le slide...Quelqu'un peut t-il me dire pourquoi la valeur de ma fonction dans le domaine x >0 n'est t-elle pas plotée ?

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Casimirs Voir le message
    Ma fonction vaut en effet x^2+y^2+z^2 lorsque x >0 et vaut z pour x < =0.
    Non ton code ne fait pas du tout cela.
    Ici x est un tableau 3D contenant des valeurs positives et négatives, et écrire if x > 0 revient à à dire si TOUS les éléments de x sont positifs. Ce qui est bien évidemment faux, c'est v = z; qui est exécuté indifféremment du signe de x, et v est donc égal à z.

    En utilisant l'indexage logique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xp = x > 0;
    v = z;
    v(xp) = x(xp).^2+y(xp).^2+z(xp).^2;
    Dernière modification par Invité ; 11/09/2012 à 02h54. Motif: Amélioration grâce à mon parrain un peu lent ^^

Discussions similaires

  1. Fonction appellé deux fois
    Par stephane92400 dans le forum JSF
    Réponses: 5
    Dernier message: 17/08/2007, 16h22
  2. [Requête] Tri d'éléments en fonction de deux heures différentes
    Par Grandchon dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/05/2007, 18h45
  3. Déclarer une fonction avec deux inconnues
    Par a.ahmed dans le forum MATLAB
    Réponses: 6
    Dernier message: 27/02/2007, 09h43
  4. passage de resultat de fonction entre deux .h
    Par zmatz dans le forum C++
    Réponses: 5
    Dernier message: 01/10/2005, 22h50
  5. [Fonctions] Une fonction ou deux ?
    Par Évariste Galois dans le forum C++
    Réponses: 10
    Dernier message: 24/08/2005, 09h22

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