Definir une variable sous matlab
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Definir une variable sous matlab



  1. #1
    ratmrhcp1

    Definir une variable sous matlab


    ------

    Bonjour a tous comme l'indique le titre ,je ne trouve pas comment paramétrer ma variable!!!

    Je m'explique : je souhaite visualiser la courbe d'un champ magnétique en fonction du rayon (coordonnes cylindriques)

    voici un morceau de mon code :

    clc

    %parametrage de l'aimant%


    R1=20e-3;
    e=5e-3;
    Br=1.3; %moyenne de la doc technique%
    mu0=4*3.14e-7;
    m1=Br*mu0;

    %champ cree par l'aimant%

    r=0:0.1:1;
    B(r)=(mu0*3*m1)/(4*3.14*(r^3));


    plot(r)


    Problème : en gros je veux veux mon r varie de 0 a 1 par pas de 0,1
    j'ai vue cette notation pour le rayon dans l'aide de matlab mais maintenant il considère r comme une matrice !!!
    Je n'y comprend plus rien a l'aide !!!!!!!!!!

    -----

  2. #2
    Paraboloide_Hyperbolique

    Re : Definir une variable sous matlab

    Bonsoir,

    Votre erreur vient de la ligne:

    Code:
    B(r)=(mu0*3*m1)/(4*3.14*(r^3));
    Le code correct est:

    Code:
    B=(mu0*3*m1)./(4*3.14*(r.^3));
    Sinon Matlab considère que vous voulez élever r à la puissance 3 (et non chacune de ses composantes à la puissance 3), ce qui n'est possible que si r est une matrice carrée.

    De même, la division composante par composante se note "./"

    P.S.: utilisez les balise "CODE" pour afficher du code, c'est plus agréable à lire.

  3. #3
    ratmrhcp1

    Re : Definir une variable sous matlab

    Merci votre message m'a beaucoup aide mais je suis a nouveau confronte a ce type de problème grrrrrr !!

    Code:
    r=0:0.01:0.3;
    o=0:0.1:2*pi;
    
    
    Br1=((mu0*3*m1*cos(o))./(4*3.14*(r.^3)));
    Bo1=((mu0*3*m1*sin(o))./(4*3.14*(r.^3)));
    
    Br2=((mu0*3*m2*cos(o))./(4*3.14*(r.^3)));
    Bo2=((mu0*3*m2*sin(o))./(4*3.14*(r.^3)));
    
    pcolor(Br1,Bo1,Br2,Bo2);
    colormap(jet);
    colorbar;
    J'ai donc 2 champs B1 et B2 (champs crées respectivement par 2 aimants) avec 2 composantes une suivant ur (Br) et uteta (Bo)

    Voici mon nouveau probleme : nouvelle erreur de dimension du a l'injection du terme sin(teta) et cos(teta) j'ai essaye toutes les combinaisons IMPOSSIBLE !!!!!
    sinon j'aurais aime aussi trace les 2 champs en "graphique de couleur" je trouve ça plus visuel mais la probleme mes expressions sont scalaires et non matriciels alors du coup ça bloque !! et apparemment je ne peut qu'en mettre 1 ou 3

  4. #4
    Paraboloide_Hyperbolique

    Re : Definir une variable sous matlab

    Bonjour,

    Si je comprend bien votre problème, vous avez deux champs à deux dimensions que vous souhaitez afficher. Dans ce cas là, il est nécessaire de définir une grille sur les points de laquelle les valeurs du champs considéré sont données.

    Matlab fournit la fonction "meshgrid" pour définir une telle grille à partir de vos variables 'r' et 'o'. Utilisez les nouvelles variables fournies par "meshgrid" pour calculer vos champs comme vous le faites ("meshgrid" fait en sorte que les dimensions des variables soient compatibles).

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Programmation Scilab définir variable + dérivée
    Par B0UCH dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 11/06/2014, 21h00
  2. Arduino - Définir une variable d'une valeur donnée
    Par Guelingue dans le forum Électronique
    Réponses: 0
    Dernier message: 21/05/2013, 18h55
  3. Réponses: 6
    Dernier message: 19/02/2012, 15h50
  4. Comment définir une variable pour l'afficher sur un LCD
    Par jorg1n dans le forum Électronique
    Réponses: 4
    Dernier message: 21/11/2007, 08h46
  5. Définir une fonction sous Maple
    Par kNz dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 12/11/2007, 21h21