How to give if...then condition ?
Mostrar comentarios más antiguos
How can I give a condition statement for the following case:
for A1<=A,
e=0
for A1>A,
e=5e-03
Now, I want to use this e value (after A1>A) to calculate a new value of e at the next time instant. Say, the formula for e is,
e = v/[u/e - 2] (e on the RHS is the value of e at the previous time step and the e on LHS is the new value which I want)
How can I form a condition for the above case??
Thanks!!
1 comentario
You need to learn the difference between FOR and IF:
doc for
doc if
Once you have this difference clear in your mind, you should be able to formulate your question more clearly.
Respuestas (2)
Azzi Abdelmalek
el 17 de Oct. de 2012
e=5e-03
if A1<=A,
e=0
else
e = v/[u/e - 2]
end
15 comentarios
Urvi
el 18 de Oct. de 2012
Azzi Abdelmalek
el 18 de Oct. de 2012
show your code
Urvi
el 19 de Oct. de 2012
Azzi Abdelmalek
el 19 de Oct. de 2012
Editada: Azzi Abdelmalek
el 19 de Oct. de 2012
Maybe you should reformulate your question and make it clear.
Urvi
el 19 de Oct. de 2012
Azzi Abdelmalek
el 19 de Oct. de 2012
try this
function dy=equation(t,y)
global b1 b2 b3 c
dy=zeros(3,1);
b1=b1+1-exp(-b3)
b2=b1-y(1)
b3=b1+b2+y(2)
if y(1)<100 & b1<0.0001 %(initially b is zero)
b1=0.01
end
dy(1)=-b1*y(1);
dy(2)=b3*y(1)+b2*y(2);
dy(3)=sqrt(b1)+y(1)+y(3);
c=[c;t b1 b2 b3]
end
Urvi
el 19 de Oct. de 2012
Azzi Abdelmalek
el 19 de Oct. de 2012
Editada: Azzi Abdelmalek
el 19 de Oct. de 2012
Because the condition b1<0.0001 is always false
look at the result
find(c(:,2)<0.0001) % c(:,2) is b1,
the result is
b1 =
Empty matrix: 0-by-1
Urvi
el 19 de Oct. de 2012
Azzi Abdelmalek
el 19 de Oct. de 2012
Editada: Azzi Abdelmalek
el 19 de Oct. de 2012
No, when the function is called, first you have b1=b1+1-exp(-b3), before the test. b1 is not zero
Azzi Abdelmalek
el 19 de Oct. de 2012
Editada: Azzi Abdelmalek
el 19 de Oct. de 2012
function dy=equation(t,y)
global b1 b2 b3 c
dy=zeros(3,1);
if y(1)<100 & b1<0.0001
b1=0.01
else
b1=b1+1-exp(-b3)
end
b2=b1-y(1)
b3=b1+b2+y(2)
dy(1)=-b1*y(1);
dy(2)=b3*y(1)+b2*y(2);
dy(3)=sqrt(b1)+y(1)+y(3);
c=[c;t b1 b2 b3]
end
Urvi
el 19 de Oct. de 2012
Azzi Abdelmalek
el 19 de Oct. de 2012
Editada: Azzi Abdelmalek
el 19 de Oct. de 2012
function dy=equation(t,y)
global b1 b2 b3 c y1 yy
dy=zeros(3,1);
if y(1)>b2
b1=0.001;
end
b1=b1+1-exp(-b3);
b2=b1-y(1);
b3=b1+b2+y(2);
dy(1)=-b1*y(1);
dy(2)=b3*y(1)+b2*y(2);
dy(3)=sqrt(b1)+y(1)+y(3);
c=[c;t b1 b2 b3] ;
Urvi
el 19 de Oct. de 2012
Sachin Ganjare
el 18 de Oct. de 2012
if A1<=A
e= 0;
elseif A1>A
e = 5e-3;
end
e= v/(u/e_prev - 2);
e_prev = e;
Hope it helps!!!
6 comentarios
Urvi
el 19 de Oct. de 2012
Sachin Ganjare
el 19 de Oct. de 2012
Can you describe the error?
Urvi
el 19 de Oct. de 2012
Sachin Ganjare
el 19 de Oct. de 2012
Can you show your code, if possible a pseudo code, to help understand the problem.
Azzi Abdelmalek
el 19 de Oct. de 2012
Urvi, Can you post your code?
Urvi
el 19 de Oct. de 2012
Categorías
Más información sobre Dates and Time en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!