Интеграция простой функции MATLAB

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

Простой график

Чтобы создать компонент для этого примера, смотрите Интеграцию Простой функции MATLAB. Затем создайте Визуальное приложение Basic® можно следующим образом:

  1. Рассмотрите заявление приложения на этот пример в matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PlotExample\PlotVBApp\PlotApp.vb.

    Распечатку программ показывают здесь.

     PlotApp.vb

    Программа делает следующее:

    • Создает два массива двойных значений

    • Создает объект Plotter

    • Вызывает метод drawgraph, чтобы построить уравнение с помощью функции plot MATLAB

    • Использование MWNumericArray, чтобы обработать данные, необходимые методу drawgraph, чтобы построить уравнение

      Примечание

      Для получения информации об этих классах преобразования данных см. Справочник по библиотеке классов MWArray MATLAB, доступный в папке matlabroot\help\dotnetbuilder\MWArrayAPI, где matlabroot представляет вашу папку установки MATLAB

    • Использует блок try-catch, чтобы отловить и обработать любые исключения

    Оператор

    Dim plotter As Plotter = New Plotter

    создает экземпляр класса Plotter и оператор

    plotter.drawgraph(coords)

    вызывает метод drawgraph.

  2. Создайте приложение PlotApp с помощью Визуального Studio®.NET.

    1. Папка PlotVBApp содержит файл проекта Visual Studio.NET для этого примера. Откройте проект в Visual Studio.NET путем двойного клика по PlotVBApp.vbproj в Проводнике Windows®. Можно также открыть его с рабочего стола путем щелчка правой кнопкой по PlotVBApp.vbproj> Open Outside MATLAB.

    2. Добавьте ссылку на компонент MWArray, который является matlabroot\toolbox\dotnetbuilder\bin\architecture\framework_version\mwarray.dll.

    3. При необходимости добавьте (или зафиксируйте местоположение), ссылка на компонент PlotComp, который вы создали на предыдущем шаге. (Компонент, PlotComp.dll, находится в подпапке \PlotExample\PlotComp\x86\V2.0\Debug\distrib вашей рабочей области.)

  3. Создайте и запустите приложение в Visual Studio.NET.

Телефонная книга

Функция makephone

Функция makephone берет массив структур в качестве входа, изменяет его и предоставляет измененный массив как вывод.

Примечание

Для полной справочной информации об иерархии классов MWArray см. документацию API MWArray.

Процедура

  1. Если вы уже не сделали так, скопируйте файлы для этого примера можно следующим образом:

    1. Скопируйте следующую папку, которая поставляется с MATLAB к вашей папке работы:

      matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PhoneBookExample
    2. В подсказке команды MATLAB, cd к новой подпапке PhoneBookExample в вашей папке работы.

  2. Запишите функцию makephone, когда вы были бы любая функция MATLAB.

    Следующий код задает функцию makephone:

    function book = makephone(friends)
    
    book = friends;
    for i = 1:numel(friends)
        numberStr = num2str(book(i).phone);
        book(i).external = ['(508) 555-' numberStr];
    end

    Этот код уже находится в вашей папке работы в PhoneBookExample\PhoneBookComp\makephone.m.

  3. Из галереи приложений MATLAB откройте приложение Library Compiler.

  4. Создайте компонент.NET. Смотрите, что инструкции в Генерируют блок.NET и Создают Приложение.NET для получения дополнительной информации. Используйте следующую информацию:

    Название проектаPhoneBookComp
    ClassName phonebook
    Файл, чтобы скомпилироватьmakephone.m

  5. Запишите исходный код для приложения, это получает доступ к компоненту.

    Пример приложения для этого примера находится в matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NETPhoneBookExample\PhoneBookVBApp\PhoneBookApp.vb.

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

    Распечатку программ показывают здесь.

     PhoneBookApp.vb

    Программа делает следующее:

    • Создает массив структур, с помощью MWStructArray, чтобы представлять данные о телефонной книге в качестве примера.

    • Инстанцирует класса плоттера как объекта thePhonebook, как показано: thePhonebook = new phonebook();

    • Вызывает метод makephone, чтобы создать измененную копию структуры путем добавления дополнительного поля, как показано: result = thePhonebook.makephone(1, friends);

  6. Создайте thePhoneBookVBApp приложение с помощью Visual Studio.NET.

    1. Папка PhoneBookVBApp содержит файл проекта Visual Studio.NET для этого примера. Откройте проект в Visual Studio.NET путем двойного клика по PhoneBookVBApp.vbproj в Windows Explorer. Можно также открыть его с рабочего стола путем щелчка правой кнопкой по PhoneBookVBApp.vbproj> Open Outside MATLAB.

    2. Добавьте ссылку на компонент MWArray, который является matlabroot\toolbox\dotnetbuilder\bin\architecture\framework_version\mwarray.dll.

    3. При необходимости добавьте (или зафиксируйте местоположение), ссылка на компонент PhoneBookVBComp, который вы создали на предыдущем шаге. (Компонент, PhoneBookComp.dll, находится в подпапке \PhoneBookExample\PhoneBookVBApp\x86\V2.0\Debug\distrib вашей рабочей области.)

  7. Создайте и запустите приложение в Visual Studio.NET.

    Программа getphone должна отобразить вывод:

    Friends: 
    2x2 struct array with fields:
        name
        phone
    Result: 
    2x2 struct array with fields:
        name
        phone
        external
    Result record 2:
    Mary Smith
    3912
    (508) 555-3912
    
    Entire structure:
    Number of Elements: 4
    Dimensions: 2-by-2
    Number of Fields: 3
    Standard MATLAB view:
    2x2 struct array with fields:
        name
        phone
        external
    Walking structure:
    Element 1
       name: Jordan Robert
       phone: 3386
       external: (508) 555-3386
    Element 2
       name: Mary Smith
       phone: 3912
       external: (508) 555-3912
    Element 3
       name: Stacy Flora
       phone: 3238
       external: (508) 555-3238
    Element 4
       name: Harry Alpert
       phone: 3077
       external: (508) 555-3077