КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Примеры. 1. Нахождение суммы первых 10 натуральных чисел1. Нахождение суммы первых 10 натуральных чисел >> S = 0; % начальное значение суммы >> i=1; % счетчик суммы >> while i <= 10 % цикл (работает пока i<=10 S=S+i; % подсчитывается сумма i=i+1; % увеличивается счетчик на 1 end % конец цикла >> disp(S); % отображение суммы на экране 2. Нахождение номера элемента суммирования первых 20натуральных чисел пока сумма меньше 20 >> S = 0; % начальное значение суммы >> i=1; % счетчик суммы >> while i <= 20 % цикл (работает пока i<=20 S=S+i; % подсчитывается сумма i=i+1; % увеличивается счетчик на 1 if S >= 20 % если S > 20, break; % то цикл завершается end end % конец цикла >> disp(i); % отображение номера элемента на экране 3. Нахождение суммы нечетных элементов вектора а. >> S = 0; % начальное значение суммы >> a = [1 2 3 4 5 6 7 8 9]; % массив >> i=0; % счетчик индексов массива >> while i < length(a) % цикл работает пока i меньше длины массива а i=i+1; % увеличивается счетчик индексов на 1 if mod(a(i),2)= = 0 % если элемент вектора четный continue; % то его не суммируем else % иначе S=S+a(i); % подсчитывается сумма нечетных элементов end % завершение блока if end % конец цикла disp(S); % отображение суммы на экране Оператор цикла for Часто при организации цикла требуется перебирать значение счетчика в заданном диапазоне значений с заданным шагом изменения. Для реализации таких задач существует оператор цикла for, который позволяет проще и нагляднее реализовывать цикл со счетчиком. Синтаксис. for <счетчик> = <начальное значение>:<шаг>:<конечное значение> <операторы цикла> End Примеры. 1. Поиск максимального значения элемента в векторе >> a = [3 6 5 3 6 9 5 3 1 0]; >> m = a(1); % текущее максимальное значение >> for i=1:length(a) % цикл от 1 до конца вектора с шагом 1 (по умолчанию) if m < a(i) % если a(i) > m, m = a(i); % то m = a(i) end end % конец цикла for >> disp(m); % вывод максимального значения 2. Смещения элементов вектора вправо, т.е. предпоследний элемент ставится на место последнего, следующий – на место предпоследнего, и т.д. до первого элемента: >> a = [3 6 7 2 8 9 5 3 1 0]; >> for i=length(a):-1:2 % цикл от 10 до 2 с шагом -1 b(i)=a(i-1); % смещаем элементы вектора а end % конец цикла for >> disp([a; b]) 3 6 7 2 8 9 5 3 1 0 0 3 6 7 2 8 9 5 3 1 В некоторых задачах, где обычно используется цикл for, благодаря матричному представлению данных в среде MATLAB его использование не нужно. Таким примером может быть задача табулирования функции. Для ее реализации достаточно задать аргумент в виде диапазона и описать функцию: >> x=0:0.5:5; >> y=20*sin(x)./x; >> disp([x;y]) 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000 NaN 19.1770 16.8294 13.2999 9.0930 4.7878 0.9408 -2.0045 -3.7840 -4.3446 -3.8357 Результатом выполнения команд будет две строки. Где первая строка соответствует значениям х, а вторая – y.
|