Bonjour,
Dans ce message, j'utilise une fonction plot pour tracer une courbe, mais MATLAB ne me relie pas les points, je ne comprends pas pourquoi.
Merci
Bonjour,
Dans ce message, j'utilise une fonction plot pour tracer une courbe, mais MATLAB ne me relie pas les points, je ne comprends pas pourquoi.
Merci
Bonjour,
Ce sujet de relier les points dans une boucle a été abordé un bon nombre de fois sur ce forum. Une recherche te donnera les éléments de réponse.
Oui j'ai vu, mais je n'ai pas compris les histoires de "handles"...
Bonjour,
ça dépend de ton problème, mais normalement, tu n'as pas besoin de handle ici.
Peux-tu nous montrer ton code?
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
désolé il y a pas mal de variables...
Mais en fait il n'y a que A et L qui ont un intérêt pour le traçage
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
19 hold on; for z = 1 for i = 0:100:6300 T(i+1) = 2200 + i; A(z) = T(i+1); Blu = ((l^3)*(4.87E7))/(8*pi*h); Flu = (4*E0*h*c*me*Blu)/(e^2*l); B = ((2*h*c^2)/(l^5))*(1/(exp((h*c)/(l*kb*A(z)))-1)); Kline = ((e^2)*Flu*1E-4*n0)/(4*E0*me*c); L = B*Kline ; plot(A,L); end end hold off;
pour tracer tes points et qu'ils soient automatique reliés, tu peux stocker les variables qui t'interresse (A et L) dans un tableau mAL puis faire le plot (en dehors de tes boucle for) du genre :
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 mAL = zero(63,2); for i = 0:100:6300 T(i+1) = 2200 + i; A(z) = T(i+1); Blu = ((l^3)*(4.87E7))/(8*pi*h); Flu = (4*E0*h*c*me*Blu)/(e^2*l); B = ((2*h*c^2)/(l^5))*(1/(exp((h*c)/(l*kb*A(z)))-1)); Kline = ((e^2)*Flu*1E-4*n0)/(4*E0*me*c); L = B*Kline ; mAL(i,:) = [A L]; end plot(mAL(:,1),mAL(:,2),'b-')
On nest bien d'accord que pour :
il n'y aura qu'en seule itération et donc cela reviens à écrire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part for z = 1
c'était ce que tu voulais faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part z=1
A quoi sert le tableau T? (car dans ton code, il ne sert à rien, autant écrire directement : A(z) = 2200 + i;)
A la base comment voulais -tu construire A? On irait peut-être plus vite si tu nous disais ce que tu cherches à faire?
dans tout les cas, la méthode la plus simple est de faire les calculs dans ta boucle et de conserver tous les résultats qui t'intéressent dans un tableau (car pour l'instant tu écrases les résultats de L à chaque itération par exemple), puis de faire le tracer en dehors de ta boucle.
Edit => voir méthode de le fab.
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
En fait je suis pas vraiment très doué en MATLAB ^^
J'ai un cylindre qui émet un rayonnement lumineux. Ce rayonnement dépend de la température intérieure du cylindre. Et la température dépend du point où l'on se situe dans le cylindre.
Et mon but final c'est de tracer le rayonnement lumineux en fonction du rayon.
Ici le rayonnement c'est L, le rayon c'est z, et la température c'est A.
Et j'ai pas fait, parce que ça me créé un tableau qui change de taille à chaque itération.
Code : Sélectionner tout - Visualiser dans une fenêtre à part A(z) = 2200 + i;
J'ai [2200] après [2200 2300], [2200 2300 2400]...
Et moi je veux juste récupérer 2200, 2300, 2400,... et les utiliser pour mon axe des abscisses.
Et fab ton code me met
Est-ce qu'il faut mettre mAL(6300,: ) au lieu de mAL(i,: ) ??????Subscript indices must either be real positive integers or logicals.
Donc z varie, non?
que représente i?
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
on dirait qu'il prend i le nombre imaginaire ... as tu changé le nom i dans la boucle for ?? sinon ça marche
non, le but et de remplir chaque ligne d'un tableau de 63 lignes (tu va de 100 en 100 dans ta boucle) et deux colonnes (A et L) puis de tracer L = f(A)[/QUOTE]
edit : désolé pour la doublette me suis gourré dans l'edit
Le problème vient du fait que l'incrémentation de i commence à 0, or l'indexage des tableaux commence à 1 dans matlab. (Subscript indices must either be real positive integers or logicals.)
Le problème de ta méthode est que tu vas créer des lignes remplies de 0 inutiles dans le tableau mAL...
Il faudrait que clem3900 nous donne toutes les données du problème pour pouvoir lui proposer une solution.
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
c'est pas faux
dans l'idée undevrait faire l'affaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part mAL(i/100+1,:) = [A L];
Ca fonctionne le fab!!
Merci beaucoup.
Machine
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager