Как я могу написать цикл, который делит операнд на 2 каждый раз? - PullRequest
1 голос
/ 09 января 2012

У меня есть цикл for в C:

for (x=100;x>=3.0;x/=2){......}

Я пытаюсь написать эквивалентный цикл for в MATLAB.Я пробовал этот

for x=100:/2:3

, но это не дает никаких результатов.Поэтому моя проблема в том, как разделить на 2 на каждом шаге.

Ответы [ 2 ]

4 голосов
/ 09 января 2012

Используйте вместо этого:

x = 100;
while ( x >= 3.0)
  ...
  x = x / 2;
end
3 голосов
/ 09 января 2012

Используйте следующий код:

div = 100./power(2,0:100);
div(div<3) = [];

for i=div
    disp(i);
end

Однако, если вы хотите округлять каждый раз (я не знаю, использовали ли вы int или double ), это не сработает. В этом случае вы можете использовать цикл while , он более уместен.

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