MATLAB for循环内if语句判断失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB for循环内if语句判断失败相关的知识,希望对你有一定的参考价值。

在MATLAB中输入一下语句

for a=0.001:0.001:1
if a==0.01
fprintf('lalala')
end
end
结果没有任何东西打印出来

但是,把第2行中的a==0.01换成 a=0.02,就能打印出来 “lalala”了。

但是直接输入一下代码,又能打印出来结果:

a=0.01;
if a==0.01
fprintf('lalala')
end
为什么for循环里面判断语句会出错呢,还是我的代码有问题

您好,反复看了看语法,没看到什么毛病,a从0.001以增量0.001递增是能够运行到0.01的,然后判断,输出lalala,完成。没看出语句有什么毛病,需要进一步调试查看检查,个人建议您将a的循环变化值存至一个数组里面,看看是否有0.01这个元素,还有就是matlab不建议使用循环语句,能够用矩阵还是优先使用矩阵,谢谢。。。 参考技术A 我试了下,还真是这样啊。for循环中,a的值应该是依次相加上去的吧,会有细微的误差(忘了啥误差了),直接赋值是没误差的。这个for循环的a在0.01处的误差看了下是1.7347e-18。一般处理for循环这种判断相等的语句,都是这样if abs(a-0.01)<1e-5,即a减去0.01小于某一允许的小误差就算是相等的本回答被提问者采纳

for循环与if判断语句的运用

在python中,我们学习并掌握了for循环和if的判断,它们能够帮我们解决身边的一些数学问题。

问题

输出所有的水仙花数。

方法

需要利用两次for循环设计。第一次for循环的目的是让i取所以的三位数,第二次是对i遍历循环,把每次遍历循环出来的j用sum进行递加,然后判断sum的值是否与i相等,最后输出水仙花数。

通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。

代码清单 1

for i in range(100,1000):
sum = 0
for j in str(i):
   sum += int(j)**3
if sum ==i:
   print(i)

结语

利用for循环与if的判断,使我们对for循环语句与if判断语句的运用更加熟练。

以上是关于MATLAB for循环内if语句判断失败的主要内容,如果未能解决你的问题,请参考以下文章

Java流程控制语句

Java流程控制语句

Python学习2 条件判断语句if,循环语句for while

For 循环中的 If vs Continue 语句

两个嵌套for循环的执行顺序

JS循环语句!