Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование в matlab

Matlab

Материал из MachineLearning.

Matlab — язык программирования и система научных и инженерных расчетов, построенная на основе интерпретатора этого языка. Matlab, сокращение от «Matrix Laboratory», предназначен в первую очередь для выполнения алгоритмов, использующих векторы и матрицы.

Язык программирования Matlab (иногда также называется M-code) изначально был разработан с целью упрощения работы с процедурами широко распространенной в 70-80 годы библиотеки алгоритмов линейной алгебры LINPACK. Впоследствии он развился в мощный язык с богатым набором типов данных.

Оболочка Matlab состоит из командной строки, текстового редактора со встроенным отладчиком и окнами со списком файлов, списком видимых переменных и с историей введенных команд.

Matlab имеет большое число пакетов (toolboxes) — как собственных, так и распространяемых независимыми разработчиками часто на условиях открытого кода. В Matlab включен Simulink — визуальный редактор для моделирования динамических систем.

Содержание

Краткий обзор языка Matlab

Векторы и матрицы

добавть элемент к вектору-столбцу

добавить элемент в вектору-строке

текстовая строка — это вектор

Операции

Типы данных

итератор может быть элементом вектора

или вектором-столбцом матрицы

Условный переход

оператор if использует как логические так и целочисленные переменные; можно использовать операции ‘and(a, b)’, синоним ‘a && b’ и ‘or(a, b)’, синоноим ‘a || b’

но удобнее использовать

Эффективное программирование

Matlab в своих базовых конструкциях сложнее C/C++, поэтому желательно смотреть чужой код с целью выявления удачных приемов.

Пример 1. Примечание: представленные в обзоре времена работы зависят от конкретного компьютера, системы, на которой он работает, загруженности компьютера в момент вычисления примера, числа свободных положительных зарядов на шерсти Вашего кота. Короче, много от чего. Поэтому если при запуске скрипта на Вашем компьютере времена работы не будут совпадать с тем, что вы видете в этом обзоре — не пугайтесь, это нормально и ожидаемо. Главная мысль состоит в том, что правильно написанный код на MATLAB начинает не только быстрее работать, но и (почти всегда) лучше выглядеть и читаться.

Игрушечный пример для иллюстрации способов работы с функциями и векторами в среде MATLAB

Получили вектор, компоненты которого — случайные числа, полученные из равномерного на отрезке [0,1] распределения. Теперь возьмем от каждого его элемента логарифм различными способами.

Способ первый — совсем плохой, самый медленный — в цикле наращивать размер вектора

Результат работы такой:

duration of the very bad method on 10000 elements Elapsed time is 0.286904 seconds.

Способ второй — заметно луче — заранее зарезервировать память под результат применения функции логарифма. Для наглядности увеличим размер вектора еще в 10 раз.

Результаты работы этого кода:

duration time of a bit improved method on 1000000 elements Elapsed time is 0.062692 seconds.

Способ третий — самый правильный и самый быстрый, работает мгновенно — взять функцию логарифма (то, что именно логарифма — не принципиально) сразу от вектора

duration of the best method on 1000000 elements Elapsed time is 0.015231 seconds.

Этот пример еще более игрушечный, чем предыдущий, но все же о нем тоже надо рассказать. MATLAB расшифровывается как matrix laboratiry, поэтому важно помнить, что MATLAB оптимизирован под вычисление произведений матрица на матрицу и матрица на стобец. Поэтому в MATLAB правильно писать операции над матрицами так, как это происходит при решении задач линейной алгебры.

То есть, если нам надо перемножить матрицы A и B, то не надо писать никаких циклов, а нужно просто написать C = A * B

Результат: Matrix multiplication time Elapsed time is 0.612797 seconds.

Здесь надо заметить, что при использовании > метода умножения матриц размеров n * n время получения ответа равно O(n^3). Если предположить, что компьютер делает в секунду в среднем 10^6 операций, то что-то тут не сходится — получится, что компьютер за 0.612797 секунд выполнил 8*10^9 операции. Дело в том, что в MATLAB реализован быстрый алгоритм умножения матриц, в этом алгоритме сложность менее, чем кубическая от размера входных матриц. Поэтому при перемножении матриц важно пользоваться именно записью C = A * B, а не ударяться в написание тройного цикла — тот уж точно выполнит все 8*10^9 операций и хорошо, если за пару суток управится.

Пример 3. Есть еще несколько функций, которые заточены под матричные и векторные операции — это функции repmat и reshape. Остановимся на них подробнее.

Важно. Практика показала, что repmat и reshape в разных версиях MATLAB могут отличаться, поэтому будьте внимательны и осторожны при их использовании.

Пусть мы хотим сделать матрицу, в которой все строки одинаковые. Тут возможны несколько способов реализации. Способ первый — цикл.

Elapsed time is 1.596466 seconds.

Способ второй — использовать функцию repmat()

Elapsed time is 0.311417 seconds.

Пусть теперь нам захотелось продублировать строки матрицы A, то есть вместо каждой строки матрицы написать две таких же строки, одну под другой. Как сделать это эффективно, то есть БЕЗ ЦИКЛОВ? Тут на помощь приходит функция reshape() (еще раз напоминаю про возможные различия в разных версиях).

Дальше ловкость рук и никакого мошенничества =)

Читателю предоставляется возможность разобраться с тем, как получилась матрица B, самостоятельно.

Скорее всего при первом прочтении предыдущий пример про дублирование строк кажется высосанным из пальца, поэтому продолжим и покажем, где в реальной жизни будет очень полезно использовать операции repmat и reshape, позволяющие не использовать циклы явно и ускорять операции в Matlab.

Пример 4, строим усеченную синусоиду, вариант 1

Пример 4, вариант 2

следует избегать циклов там, где можно использовать матричные операции;

пример 5, вариант 1

пример 5, вариант 2

Функции

функции бывают embedded, private, public, inline, см. doc; при написании желательно организовать код так, чтобы функция возвращала корректный результат независимо от того, что было подано в качестве аргумента — скаляр, вектор или матрица

пример, стандартизация вектора

функции могут включать варьируемое число входных и выходных аргументов

выполнение функций как текстовых строк в теле программы

пример, как сделать случайную k-индексную матрицу

инлайн-функции — функции задаваемые в теле программы

Мини-тест

Рекомендации программистам

  1. Matlab прост в освоении. Нет понятий проект, компилятор, библиотека.
  2. Есть командная строка, редактор m-code, path list и help.
  3. Если вы хотите использовать функцию из toolbox просто используйте ее имя в коде.
  4. Коллизий имен не существует. Старое имя исчезает при его перезагрузке.
  5. Функции вызываются по имени согласно path list (см. основное меню). Следите на очередностью в этом списке.
  6. Почитайте help, если вам нужно написать известный алгоритм, возможно он уже написан.
  7. В частности, функции, работающие с множествами: intersect, ismember, issorted, setdiff, setxor, union, unique и очень полезная функция is* находятся в Help navigator -> MATLAB -> Functions — Categorical list.
  8. Wikipedia.org содержит много библиотек для Matlab.
  9. Не нужно избегать сложных алгоритмов. Часто задачи классификации, регрессии, оптимизации решаются в одну строку кода.
  10. Желательно документировать свои функции так:
    • первая строка — назначение функции
    • вторая строка — имя функции и ее входные и выходные аргументы
    • варианты использования функции
    • пример использования функции
  11. Изучите все структуры данных в Matlab, их очень много. В последней версии (на момент написания основной части — R2008a) появилась поддержка работы с классами.
  12. Избегайте циклов, если возможно, используйте операции работы с матрицами.
  13. Имеется возможность подключать функции, написанные на C (в виде специально скомпилированных библиотек).
Читать еще:  Неизвестная ошибка 9 itunes iphone

Некоммерческие версии

Matlab — коммерческая программа. Существуют некоммерческие варианты, совместимые по базовым конструкциям языка, но не совместимые по библиотечным функциям. Например, Scilab, Euler Math Toolbox и Octave.

События

Несколько раз в год фирма «Софтлайн» проводит семинары, посвященные новым версиям и отдельным подсистемам Matlab. Проводится Всероссийская научная конференция «Проектирование научных и инженерных приложений в среде MATLAB».

В среде программирования MATLAB

Создание программ в среде MATLAB позволяет значительно упростить и сократить процесс подготовки повторяемых вычислений, сделать процесс вычислений более наглядным и прозрачным, а благодаря этому – уменьшить вероятность появления принципиальных ошибок при разработке программ.

Разработка в среде MATLAB сложных программ с прерываниями, переходами по определенным условиям, с часто повторяемыми однотипными действиями, которые необходимо проводить неоднократно при измененных входных данных, требуют специального оформления программного кода в виде так называемых M-файлов. Все М-файлы имеют специальное расширение *.m.M-файл представляет собой созданный пользователем последовательный список исполняемых команд MATLAB, сохраненный на диске.Для создания нового М-файла необходимо с помощью меню редактора MATLABвыполнитьследующую последовательность действий:

File->New->M-file

В среде программирования MATLABсуществует возможность создавать программы 2 типов: скриптовые файл-программы(управляющие программы) и файл-функции (процедуры).При помощи скриптовых файлов оформляются основные программы, управляющие от начала до конца организацией вычислительного процесса. Скриптовые файл-программы не имеют входных и выходных аргументов, все переменные, объявленные в файле, становятся доступными в рабочей среде сразу после выполнения. В скриптовых файл-программах все используемые переменные образуют «рабочее пространство»; их значения сохраняются в течение всего сеанса работы с системой.

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

В файл-функциях все имена переменных внутри файла, а также имена переменных, указанные в заголовке, воспринимаются как локальные, т. е. все значения этих переменных после завершения работы процедуры исчезают, и область оперативной памяти компьютера, которая была отведена под запись значений этих переменных, освобождается для записи в нее значений других переменных.Важной особенностью работы с файл-функциями в среде MATLAB является то, что файл-функции не оперируют переменными из рабочего пространства Workspace.

Для создания файл-функций в среде MATLABнеобходимо создать новый M-файл, первая строка которого представляет собой заголовок файл-функции и должна содержать структуру следующего вида:

function f=funname(x)

где: x – входной параметр (аргумент функции), f–выходной параметр (значение функции, определяемое значением аргумента x), funname–имя функции, function–обязательное наименование в заголовке m-файла, показывающее, что данный m-файл содержит файл-функцию.

После данного заголовка следует тело файл-функции, содержащее последовательность исполняемых команд, написанных на языке программирования среды MATLAB.

Название файла, содержащего файл-функцию, должно обязательно совпадать с названием m-файла, хранящегося в локальной директории. Для вызова и исполнения файл-функции в рабочем пространстве среды MATLAB необходимо поместить созданный m-файл в текущий каталог CurrentDirectory, в том случае, если пользователь использует каталог, отличный от текущего, необходимо добавить его в путь поиска среды MATLAB, в противном случае система не сможет использовать созданную файл-функцию.

Для вызова созданной пользователем файл-функции достаточно набрать в командной строке название файл-функции с указанием значения входного аргумента:

>>funname(x)

Вызов файл-функций может также осуществляться из скриптовых файл-программ или из других файл-функций в среде MATLAB. Синтаксис обращения к созданной пользователем файл-функции аналогичен синтаксису использования стандартных функций среды программирования MATLAB.

Файл-функции, создаваемые в среде MATLAB, могут иметь несколько входных аргументов, в этом случае все входные аргументы размещаются в списке и отделяются друг от друга запятой:

function f=funname(x, y, z)

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

function [f, y, s]=funname(x, y, z)

В среде MATLAB можно создавать файл-функции с переменным количеством входных параметров, в этом случае в качестве входного параметра будет задействован массив ячеек, позволяющий хранить разнородные данные. Все входные параметры сохраняются в виде единственного параметра массива ячеек varargin. С помощью функции length(varargin)можно будет вычислить количество указанных пользователем входных параметров, а с помощью конструкции вида varargin(i)обратиться к i-му из них.

function [f, y, s]=funname(varargin)

В системе MATLAB, начиная с версии MATLAB 7.0 разрешается использование вложенных файл-функций, структура основной файл-функции в этом случае имеет следующий вид:

function [f, y, s]=funname (x, y, z)% заголовок основной функции

function [f1, y1, s1]=funname (x1, y1, z1)% заголовок первой подфункции

%операторы первой подфункции

end% конец первой подфункции

function [f2, y2, s2]=funname2 (x2, y2, z2)% заголовок второй подфункции

% операторы второй подфункции

end% конец второй подфункции

% операторы основной функции

end% конец основной функции

Основная функция обменивается информацией с подфункциями при помощи входных и выходных параметров. Переменные, определенные в подфункциях и в основной функции, являются локальными и доступны только в пределах функции. Одним из возможных вариантов использования переменных, которые являются общими для всех файл-функций, состоит в объявлении данных переменных в начале основной функции и начале подфункции как глобальных с помощью оператора global, содержащего список переменных, разделенных пробелом:

Globalx y z

В среде MATLAB есть возможность передавать имя функции как входной параметр файл-функции, что существенно расширяет возможности программирования. В данном случае имя функции передается как строка, а вычисление функции осуществляется с помощью оператора feval:

feval(‘funname’, x, y, z)

где: ‘funname’– строка с именем вызываемой функции, которая может быть как стандартной встроенной функцией, так и функцией, определенной пользователем, x, y, z – значения аргументов функцииfunname, разделенные запятой.

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

ПРОГРАММИРОВАНИЕ В MATLAB

В MATLAB особое значение имеют файлы двух типов – с расширениями .mat и .m. Первые являются бинарными файлами, в которых могут храниться значения переменных, вторые представляют собой текстовые файлы, содержащие внешние программы, определения команд и функций системы. Именно к ним относится большая часть команд и функций, в том числе задаваемых пользователем для решения своих специфических задач.

Многооконный редактор-отладчик с пустым окном редактирования m-файлов можно вызвать командой Edit из командной строки или командой меню File > New > M-fiLe (рис.1).

Рис. 1. Многооконный редактор-отладчик

Упражнение 1. Выполнить пример, изображенный на рис. 1.

После этого в окне редактора можно создать свой файл, а также пользоваться средствами его отладки и запуска. Для запуска файла его необходимо записать на диск, используя команду Save as в меню File редактора. Редактор–отладчик m-файлов выполняет синтаксическую проверку программного кода по мере ввода текста. При этом используется следующее цветовое выделение:

– ключевые слова языка программирования – синий цвет;

– операторы, константы и переменные – черный цвет;

Читать еще:  Плей маркет выдает ошибку rh 01

— комментарии после знака % – зеленый цвет;

— символьные переменные (в апострофах) – коричневый цвет;

— синтаксические ошибки – красный цвет.

Благодаря цветовому выделению вероятность синтаксических ошибок резко снижается.

М-файлы, создаваемые редактором-отладчиком, делятся на два класса: файлы-сценарии, не имеющие входных параметров и файлы-функции, имеющие входные параметры. Файл-сценарий, именуемый также script-файлом, является просто записью серии команд без входных и выходных параметров. Он имеет следующую структуру:

Тело файла с любыми выражениями

Важны следующие свойства файлов – сценариев:

1) они не имеют входных и выходных аргументов;

2) работают с данными из рабочей области;

3) в процессе выполнения не компилируются;

4) представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется в сессии.

Рассмотрим следующий файл-сценарий (рис. 2):

Рис. 2. Создание файла-сценария в MATLAB

Упражнение 2. Выполнить пример, изображенный на рис. 2.

Первые три строки здесь – это комментарий, остальные – тело файла. Обратите внимание на возможность задания комментария на русском языке. Знак % в комментариях должен начинаться с первой позиции строки. Необходимо отметить, что такой файл нельзя запустить без предварительной подготовки, сводящейся к заданию значений переменным xmin и xmах, использованным в теле файла. Это следствие первого свойства файлов-сценариев – они работают с данными из рабочей области. Имена файлов-сценариев нельзя использовать в качестве параметров функций, поскольку файлы-сценарии не возвращают значений. Можно сказать, что файл-сценарий – это простейшая программа на языке программирования MATLAB.

М-файл-функция является типичным объектом языка программирования системы MATLAB. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные и выходные параметры и использует аппарат локальных переменных. Структура такого модуля с одним выходным параметром выглядит следующим образом:

function var = f_name(Cпиcoк_napaмeтpов)

Тело файла с любыми выражениями

М-файл-функция имеет следующие свойства:

1) он начинается с объявления function, после которого указывается имя переменной var – выходного параметра, имя самой функции f_name и список ее входных параметров;

2) функция возвращает свое значение и может использоваться в математических выражениях;

3) все переменные, имеющиеся в теле файла-функции, являются локальными, т. е. действуют только в пределах тела функции;

4) файл-функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры;

5) правила вывода комментариев те же, что у файлов-сценариев;

6) при обнаружении файла–функции он компилируется и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATLAB.

Последняя конструкция var = выражение вводится, если требуется, чтобы функция возвращала результат вычислений. Приведенная форма файла-функции характерна для функции с одним выходным параметром. Если выходных параметров больше, то они указываются в квадратных скобках после слова function. При этом структура модуля имеет следующий вид:

function [varl,var2. ] = f_name(Список_параметров)

Тело файла с любыми выражениями

Если функция используется как имеющая единственный выходной параметр, но имеет ряд выходных параметров, то для возврата значения будет использоваться первый из них. Это зачастую ведет к ошибкам в математических вычислениях. Поэтому, как отмечалось, данная функция используется как отдельный элемент программ вида [varl, var2] = f_nаmе (Список_параметров). После его применения переменные выхода varl, var2 становятся определенными и их можно использовать в последующих математических выражениях и иных сегментах программы.

Для организации диалогового ввода и вывода используются следующие операторы, представленные в таблице 1.

Операторы диалогового ввода/вывода

Приведем простой пример диалоговой программы, которая служит для многократного вычисления длины окружности по вводимому пользователем значению радиуса r (рис. 3).

Рис. 3. Пример диалоговой программы

Упражнение 3. Выполнить пример, изображенный на рис. 3.

Для организации ветвлений служат условные операторы.

Конструкции условных операторов:

if

End

Операторы (тело выражения) выполняются только в том случае, если условие истинно, если условие ложно, то тело выражения не выполняется.

2) if

Else

End

Если ход программы должен изменяться в зависимости от нескольких условий, то следует использовать полную конструкцию if-elseif-else. Каждая из ветвей elseif в этом случае должна содержать условие выполнения блока операторов, размещенных после нее. Важно понимать, что условия проверяются подряд, первое выполненное условие приводит к работе соответствующего блока, выходу из конструкции if-elseif-else и переходу к оператору, следующему за end. У последней ветви else не должно быть никакого условия. Операторы, находящиеся между else и end, работают в том случае, если все условия оказались невыполненными. Например, требуется написать файл-функцию для вычисления кусочно-заданной функции:

Рис. 4. Листинг программы для вычисления значения функции

Упражнение 4. Выполнить пример, изображенный на рис. 4.

В системе MATLAB могут применяться следующие операторы сравнения, приведенные в таблице 2.

End

Операторы выполняются, если переменная имеет ненулевые элементы.

Арифметический оператор цикла имеет следующий вид:

for = : :

end,

где – имя управляющей переменной цикла,

– начальное значение управляющей переменной,

– конечное значение управляющей переменной,

– приращение значений переменной в ходе ее изменения от значения до значения . Если параметр не указан, по умолчанию его значение принимается равным единице.

При работе с циклом forдопустимо использование оператора прерывания цикла break. При работе данного оператора работа цикла завершается, и управление передается на следующий после конца цикла оператор.

Ход работы программы может определяться значением некоторой переменной (переключателя). Такой альтернативный способ ветвления программы основан на использовании оператора переключения switch.. Оператор switch содержит блоки, начинающиеся со слова case, после каждого case записывается через пробел то значение переключателя, при котором выполняется данный блок. Последний блок начинается со слова otherwise, его операторы работают в том случае, когда ни один из блоков case не был выполнен. Если хотя бы один из блоков case выполнен, то происходит выход из оператора switсh и переход к оператору, следующему за end.

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

Рис. 5. Листинг программы

Упражнение 5. Выполнить пример, изображенный на рис. 5.

Для остановки программы используется оператор pause. Он используется в следующих формах:

a) pause – останавливает вычисления до нажатия любой клавиши;

b) pause(N) – останавливает вычисления на N секунд;

c) pause on – включает режим отработки пауз;

pause off – выключает режим отработки пауз.

В помощь математикам: обзор MATLAB

Доверь свою работу кандидату наук!

Обзор MATLAB

Те, кто имеет дело с высшей математикой, прекрасно знают, с какими математическими «чудовищами» иногда приходится сталкиваться. Например, на вычисление какого-нибудь гигантского тройного интеграла можно потратить настоящую уйму времени, душевных сил и не восстанавливающихся нервных клеток. Конечно, это очень интересно, бросить вызов интегралу, и взять его. Но, что делать, если вместо этого интеграл грозиться взять Вас? Или, что еще хуже, кубический трехчлен вышел из-под контроля и разбушевался? Такого и врагу не пожелаешь.

Что делать?

Раньше вариантов было всего два: плюнуть на все и пойти гулять или вступить в многочасовую схватку с интегралом. Ну, кому многочасовую, кому многоминутную – кто как учился. Но суть не в этом. Двадцатый век и неумолимо движущийся прогресс предлагают нам третий способ, а именно позволяют взять самый сложный интеграл «по-быстрому». То же самое касается решения всевозможных уравнений, построения графиков функций в виде кубических гиперболоидов и т.д.

Читать еще:  Код ошибки 0000225

Для таких неординарных, но периодически случающихся среди студентов ситуаций существует мощное математическое оружие. Встречайте, кто еще не знает – пакет программ MATLAB.

Матлаб и решит уравнение, и аппроксимирует, и построит график функции. Понимаете, что это значит, друзья?

Это значит, что MATLAB – один из мощнейших на сегодняшний день пакетов обработки данных. Название расшифровывается как Matrix Laboratory. Матричная Лаборатория, если по-русски. Возможности программы покрывают практически все области математики. Так, пользуясь матлабом, Вы сможете:

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

MATLAB

Помимо всего этого возможности MATLAB позволяют визуализировать данные вплоть до построения трехмерных графиков и создания анимированных роликов.

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

MATLAB как язык программирования

М-файл

А еще MATLAB – это язык программирования, используемый непосредственно при работе с программой. Не будем вдаваться в подробности, скажем только, что программы, написанные на языке MATLAB, бывают двух видов: функции и скрипты.

MATLAB — серьезное средство для серьезных ребят

Основной рабочий файл программы – М-файл. Это бесконечный текстовый файл, и именно в нем происходит непосредственно программирование вычислений. Кстати, пусть Вас не пугает это слово – для того, чтобы работать в MATLAB, вовсе не нужно быть профессиональным программистом.

М-файлы делятся на

  • М-сценарии. М-сценарий – самый простой тип M-файла, у которого отсутствуют входные и выходные аргументы. Данный файл используется для автоматизации многократно повторяемых вычислений.
  • M-функции. М-функции – это М-файлы, допускающие наличие входных и выходных аргументов.

Для того чтобы наглядно показать, как происходит работа в MATLAB, приведем ниже пример создания функции в матлабе. Данная функция будет вычислять среднее значение вектора.
function y = average (x)
% AVERAGE Среднее значение элементов вектора.
% AVERAGE(X), где X — вектор. Вычисляет среднее значение элементов вектора.
% Если входной аргумент не является вектором, генерируется ошибка.
[m,n] = size(x);
if (

Строка определения функции сообщает системе MATLAB, что файл является М-функцией, а также определяет список входных аргументов. Так, строка определения функции average имеет вид:
function y = average(x)
Где:

  1. function — ключевое слово, определяющее М-функцию;
  2. y — выходной аргумент;
  3. average — имя функции;
  4. x — входной аргумент.

Итак, чтобы написать функцию в матлабе, необходимо помнить, что каждая функция в системе MATLAB содержит строку определения функции, подобную приведенной.

Безусловно, такой мощный пакет нужен не только для того, чтобы облегчить жизнь студентам. В настоящее время MATLAB, с одной стороны, очень популярен среди специалистов многих научных и инженерных отраслей. С другой стороны, возможность работы с большими матрицами делает MATLAB незаменимым инструментом финансовых аналитиков, позволяющим решить намного больше задач, чем, к примеру, известный всем Excel. Подробнее о том, как сделать презентацию на компьютере вы можете прочитать в обзорной статье.

Недостатки работы с MATLAB

MATLAB — хорошо, но тяжело

Какие есть трудности в работе с MATLAB? Трудность, пожалуй, всего одна. Но фундаментальная. Чтобы полностью раскрыть возможности MATLAB и с легкостью решать встающие перед Вами задачи, придется попотеть и сначала разобраться с самим матлабом (как создать файл, как создать функцию и др.). А это не так просто, ибо мощность и широкие возможности требуют жертв.

При всем желании нельзя сказать, что MATLAB – простая программа. Тем не менее, надеемся, все вышеперечисленное будет достаточным аргументом для того, чтобы взяться за ее освоение.

И напоследок. Если Вы не знаете, почему все в Вашей жизни пошло так, а не иначе, спросите об этом у матлаба. Просто наберите в командной строке “why” (почему). Он ответит. Попробуйте!

Теперь вы знаете возможности Матлаб. В области образования MATLAB часто используется в преподавании численных методов и линейной алгебры. Многим студентам не обойтись без него при обработке результатов эксперимента, проведенного в ходе лабораторной работы. Для быстрого и качественного освоения основ работы с MATLAB Вы всегда можете обратиться к нашим специалистам, в любой момент готовым ответить на любой Ваш вопрос.

ВВЕДЕНИЕ. Программирование в matlab;

Лазарева Н.М.

Учебное пособие

Программирование в matlab

ПРОГРАММИРОВАНИЕ в matlab

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное агентство по образованию

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Чувашский государственный университет имени И.Н. Ульянова»

Рецензенты:

кафедра ТОЭ и РЗА ЧГУ

(зав. кафедрой д-р техн. наук, профессор Г.С. Нудельман);

начальник отдела ОМС НПП «Технотрон», канд. техн. наук О.Б. Гецкин

Л**Программирование в Matlab: учебное пособие / Н.М. Лазарева. Чебоксары: Изд-во Чуваш. ун-та. 2012. 150 с.

Подготовлено в соответствии с рабочей программой курса «Инженерное программирование». Содержит изложение правил программирования на языке системы компьютерной математики Matlab. Приведено множество примеров, даны задания к лабораторным работам.

Для студентов I курса направления 210100 «Электроника и наноэлектроника» по профилю «Промышленная электроника»

Ответственный редактор д-р техн. наук, профессор Г.А. Белов

Утверждено Учебно-методическим советом университета

ISBN *** © Издательство Чувашского

Система компьютерной математики (СКМ) Matlab предназначена для моделирования, анализа и визуализации динамических процессов, возникающих в различных областях человеческой деятельности. Моделирование можно выполнять с использованием виртуальных блоков, не прибегая к программированию, и с применением функций, реализующих численные методы и средства визуализации результатов. Простой встроенный язык позволяет легко реализовывать и собственные алгоритмы.

Уникальность СКМ Matlab определяется следующими ее особенностями: ориентирована на выполнение матричных операций; имеет в своем составе богатейшую библиотеку функций, которые предназначены для решения широкого круга научных и инженерных задач; возможен диалог с другими математическими системами, такими как Mathcad, MS Excel, Maple; прекрасно интегрируется со многими приложениями (MS Word, MS Access, MS SQL Server, Oracle) и средами программирования (C, Fortran, Java); имеет около сорока расширений для профессиональных приложений (Simulink – интерактивное моделирование и анализ динамических систем, Filter Design Toolbox – проектирование, имитация и анализ цифровых фильтров; Image Processing Toolbox – обработка изображений; Signal Processing Toolbox – обработка цифровых и аналоговых сигналов; SimPowerSystems – моделирование электрических силовых систем и др.); обладает хорошо развитыми возможностями визуализации двумерных и трехмерных данных.

Разумеется, ограниченность объема пособия не позволяет подробно описать все средства, которые предоставляет Matlab пользователю. Ориентация на студентов первого курса сужает круг решаемых задач. Тем не менее, материал, изложенный в пособии, позволяет освоить азы программирования на языке СКМ Matlab и изучить элементарные компьютерные технологии решения инженерных задач.

Предполагается, что читатель обладает навыками программирования на каком-либо алгоритмическом языке.

Ссылка на основную публикацию
Adblock
detector