Как добавить библиотеку в матлаб

от admin

How to install toolbox for MATLAB

I am just wondering, if I need a toolbox which not available in my MATLAB, how do I do that? For example: if I need image processing toolbox, how do I get it?

4 Answers 4

first, you need to find the toolbox that you need. There are many people developing 3rd party toolboxes for Matlab, so there isn’t just one single place where you can find «the image processing toolbox». That said, a good place to start looking is the Matlab Central which is a Mathworks-run site for exchanging all kinds of Matlab-related material.

Once you find a toolbox you want, it will be in some compressed format, and its developers might have a «readme» file that details on how to install it. If it isn’t the case, a generic way to attempt installation is to place the toolbox in any directory on your drive, and then add it to Matlab path, e.g., going to File -> Set Path. -> Add Folder or Add with Subfolders (I’m writing for memory but this is definitely close).

Otherwise, you can extract all .m files in your working directory, if you don’t want to use downloaded toolbox in more than one project.

There are many toolboxes. Since you mentioned one that is commercially available from MathWorks, I assume you mean how do you get a trial/license

There is a link for trials, purchase, demos. This will get you in touch with your sales representative. If you know your sales representative, you could just call to get attention faster.

If you mean just a general toolbox that is from a source other than MathWorks, I would check with the producer, as it will vary widely from «Put it on your path.» to whatever their purchase and licensing procedure is.

Использование .Net библиотек в MATLAB

Привет Хабровчанам! На Хабре уже обсуждался вопрос интеграции .Net c Matlab’ом. Цель же этой статьи — показать, как можно быстро и удобно решить обратную задачу: вызывать управляемый код из произвольных .Net библиотек в Matlab.

Зачем это нужно?

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

Disclaimer

Пример, который рассматривается в статье, описывает типичный набор случаев возникающих при интеграции, достаточный для проведения широкого класса вычислений, однако, не охватывает всех возможностей интеграции с .Net, которые присутствуют в Matlab.
Код из данной статьи был сделан и протестирован на Windows платформе и в конкретной версии Matlab 2013a. В качестве версии .Net Framework использовалась 4.5, IDE — VS 2012.

Создание объектов .Net в Matlab

В качестве простого примера рассмотрим создание объекта стандартного класса DateTime из .Net.
Получение текущей даты-времени из .Net может быть записано следующим Matlab кодом

Сразу же обратим внимание, что это полный код. От нас не требуется явного подключения каких-либо системных библиотек .Net, и CLR переменная dateTimeNow автоматически становится переменной Matlab’a. Если же данный вызов завершился с ошибкой, можно проверить булевский результат команды, которая проверяет поддержку .Net в среде.

В качестве примера вызова метода CLR объекта, прибавим к текущей дате 10 минут, используя привычный дотнетчикам метод AddMinutes

В результате запуска данных команд в выводе отображается содержимое полученных объектов

Готовим DLL

Прежде чем научиться загружать произвольную сборку в Matlab, займемся ее подготовкой.
В качестве простого примера реализуем в целевой .Net библиотеке c именем Algorithms.dll алгоритм поиска левого верхнего угла ограничивающего прямоугольника бинарного изображения.

Это можно сделать с помощью такого кода на C#:

Данный код является специфическим: мы будем рассматривать вызов нестатических public методов из Matlab, которые возвращаются значения с помощью ключевого слова out . Метод GetLeftUpperCornerBB принимает на вход объект класса Bitmap , в котором содержится бинарное изображение, и возвращает в массиве coordinates координаты первого левого верхнего черного пикселя (а если такого на изображении нет, например, в случае пустого изображения, то возвращается null ).

Загрузка custom’ных .Net библиотек в Matlab

В директории Matlab проекта создадим новый Matlab-файл Example.m , рядом с которым поместим полученную на предыдущем шаге библиотеку Algorithms.dll (см. скриншот ниже)

С помощью вызова функции addAssembly загрузим сборку в Matlab.

просмотрим список классов загруженной сборки

с помощью команды

включаем namespace Algorithms.

Создаем объект класса ImageProcessor и загружаем входное изображение в переменную bitmap

файл picture.bmp при этом располагается в текущей рабочей директории.
Команда

покажет нам список доступных методов данного объекта

Теперь, запускаем целевой метод GetLeftUpperCornerBB и получаем результат

Если бы у нас было несколько out параметров (предположим, целых три массива с координатами), то мы бы написали такой код для их получения

Отметим, что результат является CLR объектом типа System.Int32[] , поэтому для возможного удобства работы с ним существует возможность конвертировать данный массив в native массив Matlab’a. Например:

Обратная конвертация возможна с помощью функции NET.convertArray .

Итого, получаем следующий листинг:

Заключение

Мы решили задачу создания .Net объекта в Matlab, запуска методов .Net классов и получения результатов.
Отдельно стоит заметить, что согласно документации Matlab выгрузка загруженных .Net модулей не предусмотрена явно. Поэтому, для замены DLL файла потребуется как минимум перезагрузка IDE Matlab. В остальном, в версии 2013a представлена достаточно полная поддержки интеграции .Net в смысле возможностей работы с различными элементами CLR и их атрибутами.

4. Библиотека компонентов пакета Simulink

Запуск Simulink. Для запуска программы необходимо предварительно запустить пакет Matlab. После открытия основного окна программы Matlab нужно запустить программу Simulink. Это можно сделать одним из трех способов:

— нажать кнопку (Simulink) на панели инструментов командного окна Matlab;

— в командной строке главного окна Matlab напечатать Simulink и нажать клавишу Enter на клавиатуре;

— выполнить команду Open… в меню File и открыть файл модели (mdl-файл). Этот вариант удобно использовать для запуска уже готовой и отлаженной модели, когда требуется лишь провести расчеты и не нужно добавлять новые блоки в модель.

Использование первого и второго способов приводит к открытию окна обозревателя разделов библиотеки Simulink (рис. 1).

Рис. 1. Окно обозревателя разделов библиотеки Simulink

Обозреватель разделов библиотеки Simulink. Окно обозревателя библиотеки блоков содержит следующие элементы:

Заголовок, с названием окна — Simulink Library Browser.

Меню, с командами File, Edit, View, Help.

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

Окно комментария для вывода поясняющего сообщения о выбранном блоке.

Список разделов библиотеки, реализованный в виде дерева.

Окно содержимого раздела библиотеки (список вложенных разделов библиотеки или блоков)

Строка состояния, содержащая подсказку по выполняемому действию.

При выборе соответствующего раздела библиотеки в правой части окна отображается его содержимое (рис. 2).

Рис. 2. Окно обозревателя с набором блоков раздела библиотеки

Основные разделы библиотеки:

Continuous — линейные непрерывные компоненты;

Discontinuous — нелинейные компоненты;

Discrete — дискретных компоненты;

Math Operation — математические компоненты;

Ports & Subsystems — компоненты для создания подсистем;

Signal Routing — компоненты для разделения сигналов;

Sinks — регистрирующие компоненты;

Sources — источники сигналов и воздействий;

UserDefined Function — компоненты для создания функций пользователя.

Если два раза щелкнуть левой кнопкой мыши на каком-нибудь блоке в окне биб­лиотек, то открывается окно параметров блока, где отображаются установки параметров по умолчанию. Как правило, они норма­лизованы — например, задана единичная частота, единичная амплитуда, нулевая фаза и так далее. Возможность изменения параметров в этом случае отсутствует. Она появля­ется после переноса графических элементов в окно подготовки и редактирования функциональных схем (для его открытия необходимо выбрать иконку на панели инструментов илиFileNewModel).

Подробно рассмотрим наиболее используемые разделы библиотеки.

Линейные непрерывные компоненты (Continuous). Линейные компоненты играют важную роль в создании математических моделей многих устройств. Имеются следующие типы линейных компонентов: Derivative — аналоговое дифференцирующее уст­ройство; Integrator — аналоговый интегратор; StateSpace — модель в пространстве состояний; Transfer Fcn — передаточные функции, и ряд других устройств.

Нелинейные компоненты (Discontinuous). Simulink предназначен главным образом для моделирования нелиней­ных динамических систем. Среди нелинейных компонентов следует отметить компоненты с типичными нелинейностями, например, вида abs(u), с характеристиками, описанными типовыми математическими функциями, компонентами вида идеальных и неидеальных ограни­чителей и так далее. Представлены и такие сложные компоненты, как кван­тователи, блоки нелинейности, моделирующие нелинейные петли гистерезиса, вре­менные задержки и ключи-переключатели.

Saturation – насыщение, в параметрах задаются верхний и нижний пределы (Upper limit и Lower limit).

Dead zone нечувствительность, «мертвая зона». В параметрах задаются пределы нечувствительности (Start of dead zone и End of dead zone).

Rate Limiter ограничитель скорости изменения сигнала, в параметрах задаются пределы на скорость увеличения (Rising slew rate) и на скорость уменьшения (Falling slew rate).

Relay – реле, в параметрах задаются точки переключения (Switch on point и Switch off point), в также величины сигналов в режимах «включено» (Output when on) и «выключено» (Output when off).

Backlash люфт, «мертвый ход». В параметрах задаются величина мертвого хода (Deadband width) и начальное значение выхода (Initial output).

Coulomb and Viscous Friction кулоновское и вязкое трение.

Читать:
Как убрать подытог в woocommerce

Дискретные компоненты (Discrete). Дискретные компоненты включают в себя устройства задержки, дискретно-временной интегратор, дискретный фильтр и т. д. Дискретные блоки аналогичные непрерывным блокам:

Среди них есть два блока, не имеющих аналога среди непрерывных блоков. Это блок задержки Unit delay и блок Discrete Filter — дискретный фильтр, который определяет рациональную функцию от оператора задержки z / 1 .

Математические компоненты (Math Operation). Ок­но Math Operation позволяет задавать множество математических компонентов с описываемыми пользователями свойствами, имеет решающее значение для выполнения прозрачного для пользователя математического моделирования как простых, так и сложных уст­ройств и систем. Некоторые из них:

Компоненты для создания подсистем (Ports & Subsystems). В случае если моделируемая система имеет сложную схему, удобным может быть объединение нескольких элементов в один с помощью блока Subsystem. При этом для задания требуемого количества входов и выходов нового элемента используются блоки In1 и Out1.

Компоненты для разделения сигналов (Signal Routing). Иногда для большей наглядности необходимо отобразить несколько графиков в одном окне, для этого может быть использован блок Mux из библиотеки Signal Routing, который объединяет любое количество входных воздействий в один выходной сигнал, представляющий собой вектор. С помощью блока Demux выполняется обратная операция — разъединение одного сигнала (вектора) на несколько.

Manual Switch — ручной переключатель, позволяет двойным щелчком переключать выход на один из двух входных сигналов.

Mux — мультиплексор, объединяет несколько сигналов в один «жгут» (векторный сигнал), в параметрах задается число входов (Number of Inputs).

Demux — демультиплексор, позволяет «разбить» векторный сигнал на несколько скалярных, в параметрах задается число выходов (Number of Outputs).

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

На схеме можно разместить несколько приемников, воспринимающих сигналы на выходах различных звеньев, в том числе и непосредственно от источников сигналов.

Наиболее простым устройством для отображения процесса является Scope, имитирующий осциллограф. Он имеет один вход, и соответственно одно окно для отображения результата. Если необходимо вывести несколько графиков, то на панели инструментов графика выбирается ParametrsGeneral и в поле Number of axes выставляется количество осей, которому будет соответствовать количество входов блока Scope.

В окне блока Scope изображается график изменения входного сигнала. Если вход соединен с выходом мультиплексора, сразу строится несколько графиков (по размерности входного «жгута»).

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

Кнопка открывает окно настроек, причем наиболее важные данные содержатся на вкладкеData history. Если не сбросить флажок Limit data points, в памяти будет сохраняться только заданное число точек графика, то есть, при большом времени моделирования начало графика будет потеряно.

Отметив на этой же странице флажок Save data to workspace можно сразу передать результаты моделирования в рабочую область Matlab для того, чтобы их можно было дальше обрабатывать, выводить на графики и сохранять в файле. Поле Variable name задает имя переменной в рабочей области, в которой сохраняются данные. В простейшем случае выбирается формат Array (в списке Format). Это означает, что данные будут сохраняться в массиве из нескольких столбцов (первый столбец – время, второй – первый сигнал, третий – второй сигнал и т.д., по порядку входов мультиплексора).

Блок XY Scope применяется при необходимости построения фазовых портретов и статических характеристик.

Display – цифровой дисплей, показывает изменение входного сигнала в цифровом виде.

Scope осциллограф, показывает изменение сигнала в виде графика.

To File — передача данных в файл untilited.mat.

To Workspace — сохранение данных в переменной simout и передача в Workspace.

Источники сигналов и воздействий (Sources). Окно Sources содержит графические элементы — источники воз­действий. В электро- и радиотехнике их принято называть источниками сигналов, но в механике и в других областях науки и техники такое название не очень подходит — природа воздействий может быть самой разнообразной, например, в виде перепада давления или температуры, механического перемещения, звуковой волны и так далее.

Большинство элементов содержит рисунок, представляющий временную зависимость воздействий, например, перепад для блока Step, синусоиду для блока Sine Wave и т. д.

Набор блоков содержит практически все часто используемые при моделировании источники воздействий с самой различной функциональной и временной зависимостью. Возможно задание произвольного воздействия из файла — блок From File.

Constant – сигнал постоянной величины.

Step – ступенчатый сигнал, меняется время скачка (Step Time), начальное (Initial Value) и конечное значение (Final Value).

Ramp – линейно возрастающий сигнал с заданным наклоном (Slope). Можно задать также время начала изменения сигнала (Start Time) и начальное значение (Initial Value).

Pulse Generator – генератор прямоугольных импульсов, задаются амплитуда (Amplitude), период (Period), ширина (Pulse Width, в процентах от периода), фаза (Phase Delay).

Repeating Sequence последовательность импульсов, их форма задается в виде пар чисел (время; величина сигнала)

Sine Wave – синусоидальный сигнал, задается амплитуда (Amplitude), частота (Frequency), фаза (Phase) и среднее значение (Bias).

Signal Builder – построитель сигналов, позволяющий задавать форму сигнала, перетаскивая мышью опорные точки.

Random Number – случайные числа с нормальным (гауссовым) распределением. Можно задать среднее значение (Mean Value), дисперсию (Variance), период изменения сигнала (Sample Time).

Uniform Random Number – случайные числа с равномерным распределением в заданном интервале от Minimum до Maximum.

Band Limited White Noise – случайный сигнал, ограниченный по полосе белый шум (имеющий равномерный спектр до некоторой частоты). Блок используется как источник белого шума для моделей непрерывных систем. Задается интенсивность (Noise Power) и интервал дискретизации (Sample Time), в течение которого удерживается постоянное значение сигнала. Чем меньше интервал, тем точнее моделирование, однако больше вычислительные затраты.

Компоненты для создания функций пользователя (UserDefined Function).

Fcn — задание функции преобразования входного сигнала.

Matlab Fcn — вызов файла-функции Matlab (в параметрах блока указывается имя файла).

S-Function Builder — создание S-функции.

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

Для выделения одного блока или соединительной линии надо щелкнуть левой кнопкой мыши по нужному элементу. Для того чтобы выделить несколько блоков, надо «обвести» их при нажатой левой кнопки мыши. Клавиша Delete удаляют выделенную часть. Чтобы скопировать блок (или выделенную часть), надо перетащить его при нажатой правой кнопке мыши.

Для изменения оформления выделенного блока предназначено меню Format на верхней панели инструментов. Также для этой цели можно использовать контекстное меню Format при нажатии на блоке правой кнопкой мыши. Для выделенного блока можно изменить цвет текста и линий (Foreground color), цвет фона (Background color), вывести тень (Show drop shadow), переместить название на другую сторону (Flip name).

Для имитационного моделирования следует отредактировать «параметры» имитации и запустить процесс.

Команда из меню SimulationParameters раскрывает диалоговое поле редактирования параметров имитации, что подразумевает выбор алгоритма численного интегрирования уравнений и задание числовых параметров:

Start Time — время начала процесса (обычно равно 0);

Stop Time — время окончания процесса имитации;

Min Step Size — минимальная величина шага интегрирования;

Max Step Size — максимальная величина шага интегрирования;

Tolerance — допуск (допустимая погрешность).

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

Использование переменных для задания параметров блоков. Параметры блоков Simulink можно задавать не только как числовые параметры, но и как имена переменных. Значения переменных необходимо задать перед началом расчета в командном окне Matlab или в m-файле. Такой способ задания параметров удобен, если требуется проводить расчеты для множества вариантов параметров блоков модели.

Русские Блоги

Библиотека выбора функций (FSLib 2017) — это широко используемая панель инструментов выбора функций Matlab, которая содержит в общей сложности 10 контролируемых и неконтролируемых методов выбора функций:

ILFS, mRMR, reliefF, fsvFS, spider_wrapper, infFS, ECFS

1. Инструментарий скачать

Перед использованием сначала скомпилируйте. Запустив файл make.m, ошибка выглядит следующим образом:

Поэтому установите: Установите MinGW-w64 Compiler

Здесь вам нужно выбрать MinGW GCC в соответствии с используемой версией Maltb:

This Add-On installs one of the following versions of MinGW GCC based on your version of MATLAB:

MATLAB R2015b, R2016a, R2016b, R2017a: MinGW GCC 4.9.2 from TDM
MATLAB R2017b and beyond: MinGW GCC 5.3 from mingw-w64.org

Возьмите R2017a в качестве примера, для дальнейшего использования http://blog.sina.com.cn/s/blog_167bbdec10102x113.html

После установки запустите следующий код в maltlab для проверки:

Ниже показано, что установка выполнена правильно

I already have MInGW on my computer. How do I configure it to work with MATLAB?

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