Продолжаем наше обучение по Матлаб. Сегодня мы объясним 2 важных момента при работе в Матлаб:
- какие бывают циклы в Матлаб;
- что такое zeros в Матлабе.
Напомним, что Матлаб — это довольно специфический язык программирования, который в основном используется в аналитической, инженерной и научной деятельности. Матлаб — это технический язык программирования, который создан, чтобы что-то вычислять. Его прелесть в том, что он работает на компьютерах, управляемых разными операционными системами и не привязан к какой-то конкретной платформе.
Что такое циклы в Матлаб?
Практически каждый язык программирования содержит в своем синтаксисе возможность использовать циклы для вычисления. Матлаб в этом плане не исключение. Если другие языки содержат несколько вариаций циклов, то в Матлаб есть только два вида циклов:
- «for...end»;
- «while...end».
Напомним, что любой цикл в программировании нужен для того, чтобы программа, находящаяся в цикле, повторяла свое действие до тех пор, пока не будет достигнут результат. Количество повторений циклов может быть разнообразным. Все зависит от того, какие входные данные были в цикле и что нам нужно из них извлечь. Неправильно собранный цикл может привести к большим проблемам. Например, цикл может быть бесконечным. Это означает, что программа войдет в цикл и никогда из него не выйдет, а будет повторять его снова и снова, пока устройство, на котором воспроизводится программа, не «зависнет» от перегруженной памяти.
Цикл «for...end» в Матлаб
В официальной документации к Матлаб синтаксис цикла «for» описан таким образом:
Syntax
for index = values
program statemens
end
Если перевести на русский язык описание цикла, то получаем следующее:
Syntax
for<объявляем переменную> =<описываем значение>
<описываем тело цикла>
end
Рассмотрим несколько простых примеров использования цикла «for» в Матлаб.
for d = 100: 1.0: 0.0
disp(d)
end
В этом примере мы запустили цикл, при котором программа будет перебирать числа от 100 до 0 с шагом 1 и выводить их на экран. Программа начнет отсчет со 100 и остановится на 0.
Еще один простой пример использования цикла «for»:
Syntax
d = [3 6 5 3 6 9 5 3 1 0];
n = d(1);
for i=1:length(d)
if n <d(i)
n = d(i);
end
end
disp(n)
В этом цикле мы запускаем счетчик «i» и меняем его значение от 1 до 10 с шагом 1. Результат выводим на экран.
Вообще, цикл «for» в Матлаб часто используется в тех случаях, когда нужно перебирать числовые значения в определенном диапазоне с определенным шагом.
Цикл «while...end» в Матлаб
В официальной документации к Матлаб можно найти такой шаблон цикла «while...end»:
Syntax
while expression
program statements
end
Если перевести на русский и понятный язык это описание цикла, то получим следующее:
Syntax
while <задаем условия>
<описываем действия>
end
Рассмотрим простой пример использования цикла «while...end» в Матлаб:
Syntax
exp = 100;
while exp > 1
exp = exp-1
end
В этом примере мы имеем цикл «while...end», который будет выполнять действие «exp=exp-1» до тех пор, пока соблюдается условие «exp>1». Таким образом, мы получаем цикл, который будет работать до тех пор, пока соблюдаются условия цикла. Как только условия станут ложными, работоспособность цикла сразу прервется.
Что такое «zeros» в Матлаб?
Что такое циклы в Матлаб, мы разобрали чуть выше. Но Матлаб интересен и другими свойствами. Например, некоторые пользователи в Матлабе впервые встречают такое выражение, как «zeros». Многие знают, что «zero» — это «ноль», но что такое «zeros»?
Zeros в Матлабе — это специальная функция, которая формирует массив из нулей. Кстати, сам массив будет называться также — «zeros».
Если рассматривать функциональность и специфику работы языка Матлаб, то можно заметить, что основным объектным инструментом языка считаются массивы, из которых можно формировать:
векторы — формируются односоставными массивами;
матрицы — формируются двусоставными массивами;
тензоры — формируются многосоставными массивами.
При формировании массивов в Матлаб используют специальные синтаксические инструменты, среди которых находится функция «zeros». К основным инструментам такого рода относят следующие функции:
«zeros» — генерирует хранилище, состоящее из нулей;
«ones» — генерирует хранилище, состоящее из единиц;
«eye» — генерирует матрицу, состоящую из единиц;
«rand» — генерирует хранилище компонентов, распределяемых по равномерному принципу;
«randn» — генерирует хранилище компонентов, распределяемых по нормальному принципу;
«cross» — реализует произведение нескольких векторов;
«kron» — реализует произведение тензоров;
«linspace» — генерирует однолинейное хранилище из равноотстоящих компонентов;
«logsoace» — генерирует компоненты логарифмической решетки;
«meshgrid» — генерирует компоненты двусоставной и трехсоставной решетки;
«:» — формирует векторы и подматрицы.
На практике использовать функцию «zeros» и ее «собратьев» (ones, eye, rand, randn) очень просто. Например, мы хотим сформировать двумерный массив из нулей, состоящий из 900 элементов. Синтаксис будет такой:
myarray = zerros(2, 900);
Заключение
Матлаб, хоть и специфический, но очень интересный язык программирования. Его нет смысла изучать, если вы хотите программировать приложения или веб-сайты. Но если вам нужно проанализировать какие-то технические данные и вывести их понятным графиком, то Матлаб — это то, что нужно.
Сегодня мы рассмотрели какие циклы бывают в Матлаб, а также что такое «zeros». В следующих статьях мы продолжим изучение этого языка.
Другое