2016-11-16 2 views
0

У меня есть эта конструкция цикла, и каждое отдельное значение с индексом k вектора загружается каждый по времени. Я хочу, чтобы получилось, что, когда условие 3 истинно, он перезапускает цикл с тем же используемым значением после вычисления функции. Я пробовал что-то вроде k=k-1 в состоянии, но это не сработало. Есть идеи?Повторяющийся цикл, когда условие истинно с той же ваулой

v=[v1,v2,v3,v4,v5,...] 

for k=1:n 
    if condition1 
     Function1 
    elseif condition2 
     Function2 
    elseif condition3 
     Function3 
end 

ответ

1

Должен признаться, что, хотя вы могли бы сделать это в Matlab. Возможно, он хранит его как отдельную переменную, которую вы не можете изменить в цикле.

Попробуйте использовать цикл while, хотя я бы рекомендовал вам быть осторожным, чтобы не вызвать бесконечный цикл.

k = 1; 
while k<=n 
    if condition1 
     Function1 
     k=k+1; 
    elseif condition2 
     Function2 
     k=k+1; 
    elseif condition3 
     Function3 
    end 
end 
+0

спасибо, это помогает! Вы знаете, как я выполняю этот цикл ровно 2 раза? – jdoubleu

+0

В этом случае вы можете ввести больше переменных, а оператор 'while' может проверять несколько условий. Не совсем уверен в логике, но я уверен, что вы можете понять это. – mpaskov