Советы и лайфхаки

Цикл в матлаб for – Иллюстрированный самоучитель по MatLab › Основы программирования › Циклы типа for…end. Циклы типа while…end. [страница — 364] | Самоучители по математическим пакетам

Циклы и условия matlab: теория и примеры

Доброго времени суток. Сегодня речь пойдёт о циклах и условиях в Matlab. Материал, который взят за основу — это help в Matlab и несколько простых примеров, которые мы с вами и разберем.

Условия в MATLAB

Ни один язык программирования не обходится без таких конструкций как условия, именно об этом мы с вами и поговорим:
Начнём с синтаксиса условия if и посмотрим на формальный вариант записи в справке:

if expression, statements, end

Что значит:

if Условие, Действие, end

Теперь примеры:

x = 1;
y = 61;
if ((x >= 0.90) && (y >= 60))
   disp('ok');
end;

&& — логически оператор умножения (логическая «И»).
И вот пример с else:

x = 1;
y = 50;
if ((x >= 0.90) && (y >= 60))
   disp('ok');
else 
   disp('not right')
end;

В отличие от 1 примера, здесь выведется «not right».
Пару слов теперь о switch. Формально в справке:

Syntax
switch switch_expr
 case case_expr
    statement, ..., statement
  case {case_expr1, case_expr2, case_expr3, ...}
    statement, ..., statement
  otherwise
    statement, ..., statement
end

Более приземлённо:

Syntax
switch switch_expr
 case Значение - 1
    Действие
  case {Зачение - 2, Знчение - 3, Значение - 4, ...}
    Действие
  В остальных случиях
    Действие
end

Это значит, что если заданная переменная равна значению в case Значение — 1, то выполняется действие при case Значение — 1 и так далее. Если ни один из case не подошёл выполняется действие при otherwise.
Вот пример:

method = 'Bilinear';
switch lower(method)
   case {'linear','bilinear'}
      disp('Method is linear')
   case 'cubic'
      disp('Method is cubic')
   case 'nearest'
      disp('Method is nearest')
   otherwise
      disp('Unknown method.')
end

Циклы в MATLAB

Теперь перейдём к циклам, начнём с for.
В справке это записано в виде

Syntax
for index = values
   program statements
          :
end

В приземлённом виде это значит:

Syntax
for переменная = значению
   действие
end

Не будем задерживаться на официальных формулировках, лучше к понятным и любимым примерам

for m = 1:10
    m
end

Вот так выглядит самый распространённый способ использования for. В этом цикле мы просто выводим значение m.
Второй способ с использованием шага (step)

for s = 1.0: -0.1: 0.0
   disp(s)
end

В данном случае цикл for идёт от 1 до 0 с шагом -0.1.
Ещё один вариант:

for s = [1,5,8,17]
   disp(s)
end

В данном случае переменная s будет последовательно приравниваться 1, 5 ,8 , 17 и, соответственно, выводиться.
А также с for очень удобно выводить вектора. Вот:

for e = eye(5)
  disp('Current value of e:')
  disp(e)
end

В данном примере идёт последовательное обращение к элементам вектора e.

Цикл while:
Формально в справке:

Syntax
while expression
   program statements
          :
end

Приземлённо:

Syntax
while Условие
   Действие
end

И давайте сразу к примеру (как это в реальной жизни используется).

eps = 10;
while eps > 1
    eps = eps - 1
end

Пока в условие (eps > 1) выполняется, цикл выполняет действие

(eps = eps-1).
Также в условии while можно использовать логические операторы И — && и ИЛИ — ||, записывая несколько логических выражений в условие.

Если есть вопросы по статье, пишите в комментариях.

Поделиться ссылкой:

Похожее

codetown.ru

Циклы for, while в Матлаб(Matlab)

Оператор for предназначен для выполнения заданного числа повторяющихся действий. Самое простое использование оператора for осуществляется следующим образом:

for count = start:step:final  команды MatLab  end

Здесь count - переменная цикла, start - ее начальное значение, final - конечное значение, а  step   - шаг, на который увеличивается count при каждом следующем заходе в цикл. Цикл заканчивается, как только значение count становится больше final. Переменная цикла может принимать не только целые, но и вещественные значения любого знака

Цикл  for  оказывается полезным при выполнении повторяющихся похожих действий в том случае, когда их число заранее определено. Обойти это ограничение позволяет более гибкий цикл  while.

while  условие цикла команды MatLab  end

62. Какой командой создается М-книга в текстовом редакторе Word, связанном сMatLab?

Начало новой М-книги Чтобы приступить к написанию новой М-книги, нужно: 1) запустить редактор Word; 2) выбрать в диалоговом окне WordопциюNewиз менюFile; 3) в окне, которое появится на экране, выбрать шаблон M-book. В результате этих действий будет запущена системаMatLAB, и вид глав- ного меню редактора Word несколько изменится - в нем появится новое менюNotebook. Это и будет свидетельствовать, что кWordприсоединена системаMatLAB. Если теперь с помощью мыши активизировать менюNotebookокнаWord, на экране появится дополнительное меню

63. Какая команда в текстовом редакторе Word преобразует текст в ячейку ввода MatLab?

выбрать команду Define Input Cell(Определить Входную Ячейку) в ме- нюNotebook(см. рис. 3.20), или нажать клавиши ; после этого вид стро- ки команды должен измениться - символы команды приобретают темно-зеленый цвет, а команда становится отороченной квадратными скобками темно-серого цвета;@

64. Какая команда в текстовом редакторе Word обеспечивает в ячейке выполнение команды MatLab?

выбрать мышкой команду Evaluate Cell (Вычислить ячейку), или нажать комбинацию клавиш ; результатом этих действий должно стать появ- ление сразу после текста команды результатов ее выполнения системой MatLAB. Результаты выполнения команды выводятся, синим цветом и взяты в квад- ратные скобки

65. Какая команда в текстовом редакторе Word обеспечивает выполнение команд MatLab во всей М-книге?

Выполнение команд всех ячеек или групп ячеек ввода раздела произ- водится при помощи пункта Evaluate Calc Zone, а сразу всей М-книги – Evaluate М-book

66. Какая команда в текстовом редакторе Word обеспечивает выполнение команд MatLab во всех ячейках автоматически при открытии М-книги?

Команды ячеек, имею- щих стиль Autolnit, запускаются сразу после открытия М-книги. Полезно включить в первую такую ячейку команду clear для очистки рабочей среды. Для установки стиля Autolnit служит пункт Define Autoinit Cell меню Notebook

67. Какие кнопки содержит панель Excel Link в электронной таблице Excel при их связи с MatLab?

68. Что обеспечивает команда putmatrix?

Функция MLPutMatrix служит для по- мещения данных из ячеек рабочего листа Excel в массив рабочей среды Matlab. Аргументами данной функции являются имя переменной, заключен- ное в кавычки, и диапазон ячеек Excel, относящихся к этой переменной

68. Что обеспечивает команда getmatrix?

Об- ратную операцию осуществляет функция MLGetMatrix, при этом аргу- ментами этой функции являются имя переменной рабочей среды MatLab с 22 данными, заключенной в кавычки, и диапазон ячеек Excel, где будут разме- щены данные этой переменной, также заключенный в кавычки.

70. Для чего предназначен пакет Simulink?

В состав системы Matlab входит пакет моделирования динамических систем – Simulink. Данный пакет является ядром интерактивного программ- ного комплекса, предназначенного для математического моделирования ли- нейных и нелинейных динамических систем, представленных своей функ- циональной блок-схемой, именуемой S –моделью или просто моделью

71. Какая библиотека Simulink содержит источники сигналов?

Построим простейшую модель источника синусоидального сигнала, который подается на вход виртуального осциллографа. Для этого щелкнем на кнопке открытия браузера библиотек и в левой части появившегося окна браузера щелкнем на разделе Sources(Источники), при этом в правой части окна отображаются пиктограммы блоков, входящих в данный раздел

72. Какая библиотека Simulink содержит регистрирующие виртуальные приборы?

осциллограф Scope из раздела Sinks.

73. Какая библиотека Simulink содержит блоки дифференцирования и интегрирования?

Continuous содержит непрерывные блоки. К числу важнейших относятся блоки дифференцирования Derivative и интегрирова- ния Integrator. Первый блок осуществляет численное дифференцирование входного сигнала, для данного блока никакие параметры не вводятся. Вто- рой блок в окне параметров содержит несколько полей, в котором можно задать постоянную интегрирования на выходе блока в поле Initial condition

74. Какая библиотека Simulink содержит блоки вычисления элементарных функций?

Окно библиотеки Mathсодержит блоки выполнения математических операций

К блокам вычисления элементарных функций относятся три блока: блок математических функций MathFunction, блок тригонометрических функцийTrigonometricFunctionи блок функций округленияRounding Function.

75. Сколько значений параметров шага устанавливается в Simulink при переменном шаге моделирования?

Большое значение имеют две опции решателя в поле Solver options: тип решения и метод решения. Возможны два варианта первой опции:

• Variable-step solvers – решение с переменным шагом;

• Fixed-step solvers – решение с фиксированным шагом. По умолчанию установлена опция решения с переменным шагом, ко- гда шаг автоматически уменьшается при увеличении скорости изменения результатов и наоборот. Обычно этот метод дает лучшие результаты, чем моделирование с фиксированным шагом, исключая в большинстве случаев расхождение результатов. Применение моделирования с фиксированным шагом применяется обычно в том случае, если это обусловлено спецификой решаемой задачи

studfiles.net

Циклы типа for...end MatLab

Урок 20. Основы программирования Основные понятия программирования
Основные средства программирования
Основные типы данных
Виды программирования
Двойственность операторов, команд и функций
Некоторые ограничения
М-файлы сценариев и функций
Структура и свойства файлов сценариев
Статус переменных в функциях
Структура М-файла-функции
Статус переменных и команда global
Использование подфункций
Частные каталоги
Обработка ошибок

Вывод сообщений об ошибках
Функция lasterr и обработка ошибок
Функции с переменным числом аргументов
Функции подсчета числа аргументов
Переменные varargin и varargout
Комментарии
Особенности выполнения m-файлов функций
Создание Р-кодов
Управляющие структуры
Диалоговый ввод
Условный оператор
Циклы типа for...end
Циклы типа while...end
Конструкция переключателя
Конструкция try...catch...end
Создание паузы в вычислениях
Понятие об объектно-ориентированном программировании
Создание класса или объекта
Проверка принадлежности объекта к заданному классу
Другие функции объектно-ориентированного программирования
Что нового мы узнали?

Циклы типа for...end обычно используются для организации вычислений с заданным числом повторяющихся циклов. Конструкция такого цикла имеет следующий вид:

for vаг=Выражение. Инструкция. .... Инструкция end

Выражение чаще всего записывается в виде s:d:e, где s — начальное значение переменной цикла var, d — приращение этой переменной и е — конечное значение управляющей переменной, при достижении которого цикл завершается. Возможна и запись в виде s :е (в этом случае d=l). Список выполняемых в цикле инструкций завершается оператором end.

Следующие примеры поясняют применение цикла для получения квадратов значений переменной цикла:

» for 1=1:5 i^2. end; 

ans =

ans =

ans =

ans =

16 

ans =

25

» for x=0:.25:1 Х ^ 2, end: 

ans =

ans =

0.0625 

ans =

0.2500

ans =

0.5625 

ans =

1

Оператор continue передает управление в следующую итерацию цикла, пропуская операторы, которые записаны за ним, причем во вложенном цикле он передает управление на следующую итерацию основного цикла. Оператор break может использоваться для досрочного прерывания выполнения цикла. Как только он встречается в программе, цикл прерывается. Возможны вложенные циклы, например:

for i=1:3

for j=l:3

A(1.j)=i+j;

end 

end

В результате выполнения этого цикла (файл for2.m) формируется матрица А:

» for2 

» А

А =

2 3 4

3 4 5

4 5 6 

»

Следует отметить, что формирование матриц с помощью оператора : (двоеточие) обычно занимает намного меньше времени, чем с помощью цикла. Однако применение цикла нередко оказывается более наглядным и понятным. MATLAB допускает использование в качестве переменной цикла массива А размера тхп. При этом цикл выполняется столько раз, сколько столбцов в массиве А, и на каждом шаге переменная var представляет собой вектор, соответствующий текущему столбцу массива А:

» А=[1 2 3:4 5 6] 

А =

1 2 3

4 5 6 

» for var=A; var, end 

var =

1

var =

2

5

var=

3

6

 

radiomaster.ru

Иллюстрированный самоучитель по MatLab › Основы программирования › Циклы типа for…end. Циклы типа while…end. [страница - 364] | Самоучители по математическим пакетам

Циклы типа for…end. Циклы типа while…end.

Циклы типа for…end обычно используются для организации вычислений с заданным числом повторяющихся циклов. Конструкция такого цикла имеет следующий вид:

for var=Выражение. Инструкция..... Инструкция end

Выражение чаще всего записывается в виде s:d:e, где s – начальное значение переменной цикла var, d – приращение этой переменной и е – конечное значение управляющей переменной, при достижении которого цикл завершается. Возможна и запись в виде s:е (в этом случае d=1). Список выполняемых в цикле инструкций завершается оператором end.

Следующие примеры поясняют применение цикла для получения квадратов значений переменной цикла:

>> for 1=1:5 i^2, end;

ans =

1

ans =

4

ans =

9

ans =

16

ans =

25

>> for x=0:.25:1 X ^ 2, end:

ans =

0

ans =

0.0625

ans =

0.2500

ans =

0.5625

ans =

1

Оператор continue передает управление в следующую итерацию цикла, пропуская операторы, которые записаны за ним, причем во вложенном цикле он передает управление на следующую итерацию основного цикла. Оператор break может использоваться для досрочного прерывания выполнения цикла. Как только он встречается в программе, цикл прерывается. Возможны вложенные циклы, например:

for i=1:3

for j=i:3

A(1.j)=i+j;

end

end

В результате выполнения этого цикла (файл for2.m) формируется матрица А:

>> for2

>> A

A =

2 3 4

3 4 5

4 5 6

>>

Следует отметить, что формирование матриц с помощью оператора: (двоеточие) обычно занимает намного меньше времени, чем с помощью цикла. Однако применение цикла нередко оказывается более наглядным и понятным. MATLAB допускает использование в качестве переменной цикла массива А размера тхп. При этом цикл выполняется столько раз, сколько столбцов в массиве А, и на каждом шаге переменная var представляет собой вектор, соответствующий текущему столбцу массива А:

>> A=[1 2 3:4 5 6]

A =

1 2 3

4 5 6

>> for var=A; var, end

var =

1

4

var =

2

5

var=

3

6

Циклы типа while…end

Цикл типа while выполняется до тех пор, пока выполняется Условие:

while Условие Инструкции end

Пример применения цикла while уже приводился. Досрочное завершение циклов реализуется с помощью операторов break или continue.

samoychiteli.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о