Алгоритм программы в матлабе

В официальной документации к Матлаб синтаксис цикла «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

n = d(i);

end

end

disp(n)

В этом цикле мы запускаем счетчик «i» и меняем его значение от 1 до 10 с шагом 1. Результат выводим на экран.

Вообще, цикл «for» в Матлаб часто используется в тех случаях, когда нужно перебирать числовые значения в определенном диапазоне с определенным шагом.

Алгоритм поиска по шаблону в MATLAB. Global Optimization Toolbox

Цикл «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» — генерирует хранилище, состоящее из нулей;
  • «ones» — генерирует хранилище, состоящее из единиц;
  • «eye» — генерирует матрицу, состоящую из единиц;
  • «rand» — генерирует хранилище компонентов, распределяемых по равномерному принципу;
  • «randn» — генерирует хранилище компонентов, распределяемых по нормальному принципу;
  • «cross» — реализует произведение нескольких векторов;
  • «kron» — реализует произведение тензоров;
  • «linspace» — генерирует однолинейное хранилище из равноотстоящих компонентов;
  • «logsoace» — генерирует компоненты логарифмической решетки;
  • «meshgrid» — генерирует компоненты двусоставной и трехсоставной решетки;
  • «:» — формирует векторы и подматрицы.
Читайте также:
Программа не подключается к базе данных

Заключение

Матлаб, хоть и специфический, но очень интересный язык программирования. Его нет смысла изучать, если вы хотите программировать приложения или веб-сайты. Но если вам нужно проанализировать какие-то технические данные и вывести их понятным графиком, то Матлаб — это то, что нужно.

Создание GUI в MATLAB

Сегодня мы рассмотрели какие циклы бывают в Матлаб, а также что такое «zeros». В следующих статьях мы продолжим изучение этого языка.

Циклы и условия: if, switch, for, while

Циклы и условия 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_expr2, case_expr3, ..

.> statement, , statement otherwise statement, ..

., statement end
Более приземлённо:
Syntax switch switch_expr case Значение — 1 Действие case , Знчение — 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

Машинное обучение в MatLab/Octave: примеры алгоритмов, подкрепленные формулами

Недавно я начал изучать machine learning. Начал с прекрасного, на мой взгляд, курса от Andrew Ng. И чтобы не забыть, а так же повторить выученное решил создать репозиторий Machine Learning in Octave.

Читайте также:
Программа которая восстанавливает удаленные Андроид

В нем я собрал математические формулы для гипотез, градиентных спусков, «cost function»-ов, сигмоидов и прочих фундаментальных для машинного обучения «штук». Так же добавил туда упрощенные и доработанные примеры реализации некоторых популярных алгоритмов (нейронная сеть, линейная/логистическая регрессия и пр.) для MatLab/Octave. Надеюсь эта информация будет полезна для тех из вас, кто планирует начать изучение machine learning-а.

Тема машинного обучения достаточно обширная, о чем можно судить, например, из следующей схемы, которую я взял (перевел) из великолепной статьи vas3k-а.

obuchenie1.jpg

На данный момент из всего этого разнообразия в репозитории есть примеры пяти supervised и unsupervised алгоритмов:

  • Линейная регрессия с примером прогнозирования стоимости дома.
  • Логистическая регрессия с примерами определения неисправных чипов, а так же распознавания рукописных цифр с применением принципа «один против всех».
  • Алгоритм K-means с примером распределения данных на три кластера.
  • Поиск аномалий с помощью распределения Гаусса с примером определения перегруженного сервера.
  • Нейтронная сеть на основании многослойного персептрона с примером распознавания рукописных цифр.

Для каждого алгоритма есть файл demo.m, с которого можно начать анализ отдельно взятого алгоритма. При запуске этого файла из консоли Octave (или из MatLab-а) будет выведена служебная информация, иллюстрирующая работу алгоритма, а так же будут построены графики, помогающие разобраться с каким тренировочным сетом идет работа.

obuchenie2.jpg

Надеюсь этот репозиторий будет для вас полезным и поможет сделать очередной шаг в сторону машинного обучения.

P.S. Примеры в репозитории созданы для MatLab/Octave . Это, возможно, не такая популярная опция сейчас, как Python, но все-же для обучения, быстрого прототипирования и того же перемножения матриц без дополнительных плагинов и библиотек может неплохо подойти. Еще раз успешного вам кодинга!

Источник: www.nanonewsnet.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru