problem with if condition

1 vue (au cours des 30 derniers jours)
milan pepa
milan pepa le 9 Mar 2012
hi, i have this problem with matlab. This is my m-file, but it doesnt work.
clear all
t=0:0.1:1;
k=length(t);
a=0;
for i=1:k
if a==0.8
disp('hi')
end
a=a+0.1
end
If i use this one
t=0:1:10;
k=length(t);
a=0;
for i=1:k
if a==8
disp('hi')
end
a=a+1
end
this one works well. The difference between first and second case is only that some variables are increased 10times. Please help. thank you

Réponse acceptée

Aldin
Aldin le 9 Mar 2012
Solution:
Here, try this algorithm:
clear all
t=0:0.1:1;
k=length(t);
a=0;
for i=1:k
b = num2str(a);
if strcmp(b,'0.8');
disp('hi')
end
a=a+0.1;
end
  5 commentaires
Walter Roberson
Walter Roberson le 9 Mar 2012
Using the string solution is not recommended. Instead use a tolerance on the comparison.
milan pepa
milan pepa le 9 Mar 2012
thank you Walter, it works great

Connectez-vous pour commenter.

Plus de réponses (1)

G A
G A le 9 Mar 2012
  2 commentaires
Walter Roberson
Walter Roberson le 9 Mar 2012
http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F
milan pepa
milan pepa le 9 Mar 2012
thank you

Connectez-vous pour commenter.

Catégories

En savoir plus sur Chemistry dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by