Courbe matlab

Fermé
carpediem - 24 juil. 2008 à 10:19
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 24 juil. 2008 à 15:52
Bonjour,
j ai fais un programme qui me genere 300 points ds un cercle sans prob et j ai inserer des formules pour me calculer des donnees sans probs aussi mais des que je veux afficher la courbe ca ne me donne rien voici mon programme merci de m aider j en ai besoin tres tres rapidement encore merci

for i=1:300
x(i)=1000*rand(1);
y(i)=1000*rand(1);
d(i)=sqrt(y(i).^2 + x(i).^2);
while d(i)>1000;
x(i)=1000*rand(1);
y(i)=1000*rand(1);
d(i)=sqrt(y(i).^2 + x(i).^2);
end
end

Lp(i)=69.55 + 26.16*log10(2300) + (44.9 - 6.55*log10(150))*log10(d(i)) - 13.82*log10(150) - 3.2*(log10(11.75*1.5)).^2 - 4.97;

SNR(i)=40 + Lp(i);

plot(d(i),SNR(i))


et rien ne fonctionne...

3 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
24 juil. 2008 à 11:43
Lp(i) et SNR(i) ainsi que plot sont en dehors de la boucle for.
ceci fonctionnerai peut être mieux :
for i=1:300
x(i)=1000*rand(1);
y(i)=1000*rand(1);
d(i)=sqrt(y(i).^2 + x(i).^2);
while d(i)>1000;
x(i)=1000*rand(1);
y(i)=1000*rand(1);
d(i)=sqrt(y(i).^2 + x(i).^2);
end

Lp(i)=69.55 + 26.16*log10(2300) + (44.9 - 6.55*log10(150))*log10(d(i)) - 13.82*log10(150) - 3.2*(log10(11.75*1.5)).^2 - 4.97;

SNR(i)=40 + Lp(i);
end

plot(d,SNR);

Petite remarque sur ton while. Il doit y avoir la structure do... while() en Matlab, ou un truc dans le genre. ça serait plus propre.
1
tu as raison j men suis rendu compte apres
mais ca ne fonctionne tjs pas tout est bon mais des que jdemande la courbe av plot ca m affiche un graphe vide....
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
24 juil. 2008 à 15:28
as tu vérifier que tes valeurs de d et SNR ne soient pas toutes identique, ou nulle ou NAN, ou un truc dans le genre.
Essai plot(d) et plot(SNR) voir ce que ça donne.
0
oui c deja fait j ai tout verifie j ai meme fait en sorte que l echelle soit adaptee à mes valeurs et rien j ai les axes avec la tranches adéquates mais pas de graphique....
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
24 juil. 2008 à 15:52
demande lui de tracée des points sans lignes. vu que ton truc est aléatoire, je ne pense pas que d soit ordonné, du coup ça doit mettre des lignes dans tout les sens, et il est possible qu'il n'aime pas trop.
0