декодирование входных данных массива и циклов while - PullRequest
0 голосов
/ 25 сентября 2019

Мне просто нужна помощь в декодировании этого кода в matlab, что означает каждая строка и что она делает?

По сути, создайте массив g, где каждое значение в g является предыдущим значением g, но в квадрате.Остановитесь, когда g достигнет значения, равного или превышающего 100-кратное исходное значение g.

g = input('Please provide an initial value: '); 

while ((g == 1) || (g == 0))    
           disp('Cannot be 0 or 1')    
           g = input('Please provide an initial value: ');
end

i = 1; 
while ((g(i)^2)<=(100*g(1)))    
        g(i+1) = g(i)^2;    
        i = i+1; 
end

g = g'

Код запрашивает число, которое не может быть 0 или 1. Затем число возводится в квадрат, но останавливается, когдаследующее значение меньше или равно 100 кратному первоначальному числу.

например, если вы введете 2, код будет выпадать 2, 4, 16 и остановится, потому что следующее значение равно 256, что большечем 2 * 100 = 200.

Заранее спасибо.

1 Ответ

0 голосов
/ 25 сентября 2019
g = input('Please provide an initial value: '); 
//print this out to screen ; wait for user to type in ; press enter ;
// g becomes the number that the user type in ;
while ((g == 1) || (g == 0))    
// while g equals to 1 or g equals to zero ;
    disp('Cannot be 0 or 1')    
//print this statement to screen / console ;
    g = input('Please provide an initial value: ');
//print this out to screen ; wait for user to type in ; press enter ;
// g becomes the number that the user type in ;
end
// end the while loop ;
i = 1; 
// let i be the counter / index ; only to control the looping ;
while ((g(i)^2)<=(100*g(1)))    
// while i-th element of g is less than or equal to 100 times first element of g ;
    g(i+1) = g(i)^2;    
// i+1-th element of g is define as i-th element of g squared ;
// note that g actually becomes an array when this statement runs ;
    i = i+1; 
// i is define as i plus 1 ; meaning if i was 1 i is now 2 ;
end
// end the while loop ;
g = g'
// g become g transpose ; Matlab default to row array so this make it column array ;
...