2017-02-02 2 views
0

Я использую for для циклического преобразования значений массива.Loop Count MATLAB

for i = Sequence 

end 

Значение i дает вам значение в этой точке массива. Но есть ли способ получить позицию, в которой массив зацикливается? Например, for находится на первом номере, не устанавливая новый счетчик переменных и добавляя +1 каждый раз, когда он зацикливается.

Предположим, что массив имеет повторяющиеся значения.

+4

Почему вы не используете 'i' как индекс, и цикл по длине вашей последовательности, как' для г = 1: длины (последовательность) ', то при каждом цикле вы будете иметь циклическое количество в 'i', и вы можете получить доступ к значению в' sequence (i) ' –

ответ

0

Как я знаю, нет встроенных методов для поиска счетчика циклов без использования дополнительной переменной. Если вы не можете использовать только свою переменную i, возможно, вы можете сделать некоторое обходное решение около Sequence (используя некоторый набор find и т. Д.), Но у меня есть твердая уверенность просто добавить счетчик и увеличить его более эффективный способ.

P.S. Кстати стараются избегать использования i и j в MATLAB - есть встроенные переменные для мнимой единицы:

i = 0 + 1i 
j = 0 + 1i 
+0

Как указано в этом [комментарий] (http://de.mathworks.com/matlabcentral/answers/175074-how-to-add-vector-from -с ell # comment_264181) это не должно быть проблемой (относительно использования переменных 'i' и' j' в качестве переменных). Лично я также рекомендовал бы всегда использовать '1i' вместо' i' для мнимых значений. – Nemesis

+0

@ Немец согласен с вами! Вероятность того, что этот 'i' и' j' приведет к краху кода, очень мала, но для меня я по-прежнему предпочитаю использовать 'ii' и' jj'. –

0

Типичный способ сделать это его, чтобы сделать ваш индекс цикла будет счетчик, а затем индекс в массиве значение

for k = 1:numel(Sequence) 
    disp(Sequence(k)) 
end