Matlab 简单循环不';行不通
这太疯狂了,多年来一直停留在这个MATLAB代码上。我得到的是:Matlab 简单循环不';行不通,matlab,loops,comparison,Matlab,Loops,Comparison,这太疯狂了,多年来一直停留在这个MATLAB代码上。我得到的是: for i = 1 : 0.1 : 5 index = find(someArray == i) %do stuff end 现在,当i=1时,循环第一次运行时,索引返回正确的值(例如45)。现在,循环第二次运行时,索引被设置为一组空括号-“[]”。。。!(其余的迭代也会发生同样的情况) 这很疯狂,因为从1.1开始循环会将索引设置为逻辑数值。事实上,每次迭代都应该使用find为索引设置一个逻辑值。所以就像“查
for i = 1 : 0.1 : 5
index = find(someArray == i)
%do stuff
end
现在,当i=1时,循环第一次运行时,索引返回正确的值(例如45)。现在,循环第二次运行时,索引被设置为一组空括号-“[]”。。。!(其余的迭代也会发生同样的情况)
这很疯狂,因为从1.1开始循环会将索引设置为逻辑数值。事实上,每次迭代都应该使用find为索引设置一个逻辑值。所以就像“查找”不喜欢在循环或其他东西中使用一样
非常感谢您的任何想法或帮助 您确定
someArray
包含值1.1
?这可能只是浮点精度的问题。网上有很多关于这类事情的信息,包括:
您确定
someArray
包含值1.1
?这可能只是浮点精度的问题。网上有很多关于这类事情的信息,包括:
谢谢。我想你救了我的理智。例如,(0.3==0.1*3)的计算结果为false。。。哇,不太直观。欢迎来到数字算术的奇妙世界。这和你在小学学到的不一样!!!祝你好运,谢谢。我想你救了我的理智。例如,(0.3==0.1*3)的计算结果为false。。。哇,不太直观。欢迎来到数字算术的奇妙世界。这和你在小学学到的不一样!!!祝你好运。可能的副本可能的副本