Why is this wrong??

Hello :) I'm trying to draw the plots for E=a*c when j = 1 and E = a*b when j assumes other values, all in the same figure. The program just draws the first one, for E=a*c, and I cant understand why because it computes all different E for all the j (computes but does not do the plot). Can you tell me what I'm doing wrong? Your help will be very appreciated! Thanks in advance!
hold on
for j = 1:i
tau = (12*v*t(j)*Myr)/ro^2;
I = besseli(0.25,2*x./tau);
a = (md/(2*pi*ro));
b = (tau^-1).*(x.^-1/4).*I.*exp(-(1+x.^2)/tau);
c = normpdf(x,1,0.05);
if j == 1
E = a.*c;
else
E = a.*b
end
plot(x, E.*(1/a), colors(j))
end
hold off

3 Kommentare

Matt J
Matt J am 24 Okt. 2012
Bearbeitet: Matt J am 24 Okt. 2012
The posted code doesn't run, since you haven't defined 'i' for us, and other variables as well.
Iris
Iris am 24 Okt. 2012
Ms = 1.98919e33;
Rs = 6.9599e10;
Myr = 3.15569e13;
v = 1e5;
md = 0.01*Ms;
ro = 2*Rs;
x = [0:0.016:16]
t = [0:2e12:1e13];
i = length(t);
colors = ['r' 'b' 'g' 'b' 'g' 'b' ];
for j = 1:i
tau = (12*v*t(j)*Myr)/ro^2;
I = besseli(0.25,2*x./tau);
a = (md/(2*pi*ro));
b = (tau^-1).*(x.^-1/4).*I.*exp(-(1+x.^2)/tau);
c = normpdf(x,1,0.05);
if j == 1
E = a.*c;
else
E = a.*b
end
hold on
plot(x, E.*(1/a), colors(j))
end
hold off
end
Christoph
Christoph am 24 Okt. 2012
Weird since it works for me (R2008a, V7.6.0). Have you checked the output using subplot(2,3,j) at the start of the loop? since the value of E peaks at "8" in the 1st and <10^-12 in the other plots, so all together they appear as line... Otherwise, which Matlab release do you use?

Antworten (2)

Matt Fig
Matt Fig am 24 Okt. 2012
Bearbeitet: Matt Fig am 24 Okt. 2012

0 Stimmen

I run your code and it plots 6 lines. check for yourself:
>> length(findobj('type','line'))
ans =
6
I think maybe you are not noticing because some lines overlap. Have a look:
ylim([0 1e-12])
Matt J
Matt J am 24 Okt. 2012

0 Stimmen

Might be useful to change this
hold on
plot(x, E.*(1/a), colors(j))
to this
semilogy(x, E.*(1/a), colors(j));
hold on

Diese Frage ist geschlossen.

Gefragt:

am 24 Okt. 2012

Geschlossen:

am 20 Aug. 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by