Другое

Какие есть циклы в Матлаб, что такое Zeros в MatLab, как выйти из цикла

Продолжаем наше обучение по Матлаб. Сегодня мы объясним 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». В следующих статьях мы продолжим изучение этого языка.

Схожие статьи

Разработка требований к программному обеспечению: книга Карла Вигерса
Другое

Разработка требований к программному обеспечению: книга Карла Вигерса

AOP Framework: что это за программа и зачем она предустановлена?
Другое

AOP Framework: что это за программа и зачем она предустановлена?

10 самых неудачных и плохих языков программирования
Другое

10 самых неудачных и плохих языков программирования

Другое

Плагин на PrefiX. Удобный плагин для пользовательских тегов