Я создал цикл 'for' в функции matlab. Я хочу выполнить цикл для заданного количества итераций (maxsteps), но если разница между последним результатом F (шаг) и предыдущим результатом F (шаг 1) ниже указанного порога, то сократить цикл короче:MATLAB: Break for loop process
for steps = 1:maxsteps
(various calculations)
if F(steps) - F(steps-1) < 0.001
Break
end
end
диафрагменное (шаги) представляет собой N (= maxsteps) размерность вектора, который на каждом цикле «получает» новый столбец, выполнив сумму между двумя значениями, которые отличаются на каждой итерации: F (этапы) = a + b.
Предполагая, что maxsteps 8 (или любое целое число), когда я исполню функцию, я получаю следующее сообщение об ошибке:
подстрочные индексы должны быть либо вещественные положительные целые или логические выражения.
Если я выполняю функцию без перерыва, то она отлично работает (но я, конечно, теряю возможность порога).
EDIT [1]: Теперь, когда я снова увидел проблему, я думаю, что проблема может быть на первой итерации. Потому что, когда шаги = 1, то F (1) - F (0) < 0,001, что, я полагаю, невозможно. Мне нужно подумать о чем-то, чтобы исправить эту проблему.
Я не знал, что смогу сделать это на MATLAB (&&). Благодаря! – Jespar