l=input('l=');
for t=0:100
if t>2
g=((3/(309*0.0014))*((((0.0000126*(t-2))/l)*80.4)-(l/6)));
elseif t>80
g=l-((80.4/309)*exp(((((-3*0.0000126)/(0.0014*l))*(t-80)))));
else
g=0;
end
disp (g);
end
t=0:100;
plot (t,g)
can someone explain how to plot graph using this coding because the don't get the graph.

 Respuesta aceptada

Bhaskar R
Bhaskar R el 27 de En. de 2020

0 votos

l=input('l=');
g = zeros(1, length(0:100));% initialize g with 0's of length t
c = 1; % counter variable
for t=0:100
if t>2
g(c)=((3/(309*0.0014))*((((0.0000126*(t-2))/l)*80.4)-(l/6)));
elseif t>80
g(c)=l-((80.4/309)*exp(((((-3*0.0000126)/(0.0014*l))*(t-80)))));
else
g(c)=0;
end
c = c+1; % increment counter variable
disp (g);
end
t=0:100;
plot (t,g)

7 comentarios

liyana nadirah
liyana nadirah el 27 de En. de 2020
i get the graph but the data output is repeated. why?
Bhaskar R
Bhaskar R el 27 de En. de 2020
Your data is according to your statements and you have used disp(g) to print g for each iteration that is why data output is repeated.
liyana nadirah
liyana nadirah el 28 de En. de 2020
so should i delete the comand disp g
Walter Roberson
Walter Roberson el 28 de En. de 2020
Yes. Or use logical indexing like I posted
liyana nadirah
liyana nadirah el 28 de En. de 2020
for l=0.0002:0.001
g = zeros(1, length(0:100));% initialize g with 0's of length t
c = 1;% counter variable
for t=0:100
if (t(d)>2) && (t(d)<=80)
g(c)=((3/(309*0.0014))*((((0.0000126*(t-2))/l)*80.4)-(l/6)));
elseif t(d)>80
g(c)=l-((80.4/309)*exp(((((-3*0.0000126)/(0.0014*l))*(t-80)))));
else
g(c)=0;
end
c = c+1;% increment counter variable
end
end
disp (g)
t=0:100;
plot(t,g)
xlabel('Day')
ylabel('Cumulative percentage of nutrient release,%')
how about this can you help me fix my nested for loop. and how can i have all the graph for all 'l' in one graph
Walter Roberson
Walter Roberson el 28 de En. de 2020
for t=0:100
t is a scalar
if (t(d)>2) && (t(d)<=80)
d is undefined. If d does not happen to be 1, then because t is a scalar, t(d) would be out of range.
for l=0.0002:0.001
every iteration of that loop, every different value of l, you are ovewriting all of g. The result would be the same as if you had only done the last of them, 0.0002 .
Notice by the way that because the default increment is 1, your code
for l=0.0002:0.001
is the same as
for l=0.0002 : 1 : 0.001
so 0.0002 would be used, then 0.0002+1 would be examined and found to be greater than 0.001 so the loop would stop.
liyana nadirah
liyana nadirah el 28 de En. de 2020
emmm sorry idon't get it, so
first i should declare d as 1?

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 27 de En. de 2020
Editada: Walter Roberson el 27 de En. de 2020

0 votos

l = input('l=');
t = 0:100;
g = zeros(size(t));
mask = t>2 & t <= 80
g(mask) = ((3/(309*0.0014))*((((0.0000126*(t(mask)-2))/l)*80.4)-(l/6)));
mask = t>80;
g(mask) = l-((80.4/309)*exp(((((-3*0.0000126)/(0.0014*l))*(t(mask)-80)))));
plot (t,g)

Categorías

Más información sobre App Building en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 27 de En. de 2020

Comentada:

el 28 de En. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by