problem with if condition

4 次查看(过去 30 天)
milan pepa
milan pepa 2012-3-9
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

采纳的回答

Aldin
Aldin 2012-3-9
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 个评论
Walter Roberson
Walter Roberson 2012-3-9
Using the string solution is not recommended. Instead use a tolerance on the comparison.
milan pepa
milan pepa 2012-3-9
thank you Walter, it works great

请先登录,再进行评论。

更多回答(1 个)

G A
G A 2012-3-9
  2 个评论
Walter Roberson
Walter Roberson 2012-3-9
http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by