Простой цикл не работает - PullRequest
0 голосов
/ 05 октября 2011

Это безумие, застряли на этом коде MATLAB целую вечность. У меня есть следующее:

for i = 1 : 0.1 : 5

    index = find(someArray == i)
    %do stuff

end

Теперь при первом запуске цикла, когда i = 1, индекс возвращает правильное значение (например, 45). Теперь, когда цикл запускается второй раз, для индекса устанавливается пустой набор скобок - '[]' ...! (То же самое происходит и для остальных итераций).

Это безумие, потому что запуск цикла в 1.1 устанавливает индекс в логическое числовое значение. Фактически, каждая итерация должна устанавливать логическое значение для индекса, используя find. Так что «найти» не нравится, когда его используют внутри циклов или что-то в этом роде ...

Любые идеи или помощь высоко ценится!

1 Ответ

6 голосов
/ 05 октября 2011

Вы уверены, что someArray содержит значение 1.1?Это может быть просто проблемой с точностью с плавающей точкой.В Интернете много информации об этом, в том числе:

http://www.mathworks.com/company/newsletters/news_notes/pdf/Fall96Cleve.pdf

http://floating -point-gui.de /

http://www.mathworks.com/support/tech-notes/1100/1108.html

http://www.mathworks.com/help/techdoc/matlab_prog/f2-12135.html?#bqxyrhp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...