Courbe matlab

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...
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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....
  2. Contributeur
    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.
    1. 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....
  3. Contributeur
    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.