|
| MATLAB: Hvordan optimerer jeg det her plot~ Fra : John |
Dato : 16-12-05 12:38 |
|
Hejsa
Jeg har lavet et lille script i matlab som plotter 161*161 punkter i
forskellige
farver afhængig af en funktion.
Mit script ser sådan her ud:
for i=1:length(x)
for j=1:length(y)
c=color_matrix(i,j);
plot( x(i,j) ,y(i,j) ,'.','Color',[c c c])
xlim([0 3.2]);
ylim([0 3.2]);
drawnow;
end
end
Det tager en evighed at plotte ...i starten går det rimelig hurtigt men
efterhånden
som 'i' vokser så går det langsommere og langsommere...
Hvordan kan jeg løse det så det går hurtigere?
Tak på forhånd..
| |
Michael Zedeler (16-12-2005)
| Kommentar Fra : Michael Zedeler |
Dato : 16-12-05 13:43 |
|
John wrote:
> Mit script ser sådan her ud:
>
> for i=1:length(x)
> for j=1:length(y)
> c=color_matrix(i,j);
> plot( x(i,j) ,y(i,j) ,'.','Color',[c c c])
> xlim([0 3.2]);
> ylim([0 3.2]);
> drawnow;
> end
> end
>
> Hvordan kan jeg løse det så det går hurtigere?
Jeg kender ikke meget til matlab, men kan man flytte drawnow udenfor
løkken? Hvis det kan lade sig gøre, burde det gå en kende hurtigere.
Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf
| |
sbjepsen@hotmail.com (16-12-2005)
| Kommentar Fra : sbjepsen@hotmail.com |
Dato : 16-12-05 13:45 |
|
John skrev:
> Hejsa
>
> Jeg har lavet et lille script i matlab som plotter 161*161 punkter i
> forskellige
> farver afhængig af en funktion.
>
> Mit script ser sådan her ud:
>
> for i=1:length(x)
> for j=1:length(y)
> c=color_matrix(i,j);
> plot( x(i,j) ,y(i,j) ,'.','Color',[c c c])
> xlim([0 3.2]);
> ylim([0 3.2]);
> drawnow;
> end
> end
>
>
> Det tager en evighed at plotte ...i starten går det rimelig hurtigt men
> efterhånden
> som 'i' vokser så går det langsommere og langsommere...
>
> Hvordan kan jeg løse det så det går hurtigere?
>
> Tak på forhånd..
Det eneste bud jeg har, er at du vektoriserer dine x og y, dvs. x=
[1,length(x)]
Som du har lavet det nu, er det to loekker, hvor du for hver koersel af
den indre loekke, skal bruge din plot funktion.
Med vektoriserede x og y slipper du for de to (meget tidskraevende)
FOR-loekker.
I tilfaelde af lav koerselshastighed kan man med fordel bruge REPORT
funktionen, her faar du en oversigt over alle funktionskald, og deres
relative tidsforbrug.
mvh,
Sune
| |
|
|