Интегрируйте простую функцию MATLAB в приложение.NET

Примечание

Примеры для MATLAB® Продукт Compiler SDK™ находится в matlabroot\toolbox\dotnetbuilder\Examples\VSVersion, где VSVersion задает версию Microsoft® Visual Studio® .NET вы используете. Можно загрузить проекты для всех примеров путем открытия следующего решения в Visual Studio:

matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\DotNetExamples.sln

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

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

  • Используйте продукт MATLAB Compiler SDK, чтобы преобразовать функцию MATLAB в метод класса.NET и перенести класс в блок.NET.

  • Доступ к компоненту или в приложении C# или в Visual Basic® приложение путем инстанцирования класса.NET и использования MWArray библиотека классов, чтобы обработать преобразование данных.

  • Создайте и запустите сгенерированное приложение с помощью среды разработки Visual Studio.NET.

Необходимые условия

  • Проверьте, что вы удовлетворили все целевые требования.NET MATLAB Compiler SDK. Для получения дополнительной информации смотрите Целевые Требования.NET MATLAB Compiler SDK.

  • Проверьте, что вам установили Microsoft Visual Studio.

  • У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить приложение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime.

    Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.

Создайте простой график

Файлы

Местоположение функции MATLABmatlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PlotExample\PlotComp\drawgraph.m
Участок кода C#matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PlotExample\PlotCSApp\PlotApp.cs
Участок кода Visual Basicmatlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PlotExample\PlotVBApp\PlotApp.vb

Процедура

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

    matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PlotExample

    В командной строке MATLAB перейдите к PlotExample\PlotComp подпапка в вашей папке работы.

  2. Исследуйте drawgraph функция расположена в PlotExample\PlotComp.

    function drawgraph(coords)
    plot(coords(1,:), coords(2,:));
    pause(5)
    Протестируйте функцию в командной строке MATLAB.

    x = 0:0.01:10;
    y = sin(x);
    z = [x;y];
    drawgraph(z)

    Функциональные выходные параметры фигура, которая отображает синусоиду.

  3. Создайте компонент.NET с приложением Library Compiler или compiler.build.dotNETAssembly использование следующей информации:

    Поле Значение
    Имя библиотекиPlotComp
    ClassName Plotter
    Файл, чтобы скомпилироватьdrawgraph.m

    Например, если вы используете compiler.build.dotNETAssemblyВвод:

    buildResults = compiler.build.dotNETAssembly('drawgraph.m', ...
    'AssemblyName','PlotComp', ...
    'ClassName','Plotter');

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

  4. Решите, используете ли вы C# или Visual Basic, чтобы получить доступ к компоненту.

    • C

      Если вы используете C#, запишите исходный код для приложения C#, это получает доступ к компоненту.

      Пример приложения для этого примера находится в PlotExample\PlotCSApp\PlotApp.cs.

       PlotApp.cs

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

      Plotter plotter= new Plotter(); 

      Этот оператор явным образом бросает нативный plotValues к MWNumericArray и затем вызывает метод drawgraph:

      plotter.drawgraph((MWNumericArray)plotValues);
      
    • Visual Basic

      Если вы используете Visual Basic, запишите исходный код для приложения Visual Basic, это получает доступ к компоненту.

      Пример приложения для этого примера находится в PlotExample\PlotVBApp\PlotApp.vb.

       PlotApp.vb

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

      Dim plotter As Plotter = New Plotter

      Этот оператор вызывает метод drawgraph:

      plotter.drawgraph(coords)

    В любом случае, PlotApp программа делает следующее:

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

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

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

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

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

  5. Откройте файл проекта.NET, который соответствует вашему языку приложения с помощью Visual Studio.

    • C

      Если вы используете C#, PlotCSApp папка содержит файл проекта Visual Studio.NET для этого примера. Откройте проект в Visual Studio.NET путем двойного клика по PlotCSApp.csproj в Windows® Проводник. Можно также открыть его с рабочего стола путем щелчка правой кнопкой по PlotCSApp.csproj и выбора Open Outside MATLAB.

    • Visual Basic

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

  6. Добавьте ссылку на свой файл блока PlotComp.dll расположенный в папке, где вы сгенерировали или установили блок.

  7. Добавьте ссылку на MWArray API.

    Если MATLAB установлен в вашей системеmatlabroot\toolbox\dotnetbuilder\bin\win64\<version>\MWArray.dll
    Если MATLAB Runtime установлен в вашей системе<MATLAB_RUNTIME_INSTALL_DIR>\toolbox\dotnetbuilder\bin\win64\<version>\MWArray.dll

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

    Отображения приложения следующий график:

    Plot of x squared.

  9. Следовать этому примеру:

    • Попытайтесь запустить сгенерированное приложение на различном компьютере.

    • Попытайтесь создать инсталлятор для использования пакета compiler.package.installer.

    • Попытайтесь интегрировать блок, который состоит из нескольких функций.

Создайте телефонную книгу

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

Файлы

Местоположение функции MATLABmatlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PhoneBookExample\PhoneBookComp\makephone.m
Участок кода C#matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PhoneBookExample\PhoneBookCSApp\PhoneBookApp.cs
Участок кода Visual Basicmatlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PhoneBookExample\PhoneBookVBApp\PhoneBookApp.vb

Процедура

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

    matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PhoneBookExample

    В командной строке MATLAB перейдите к PhoneBookExample\PhoneBookComp подпапка в вашей папке работы.

  2. Исследуйте makephone функция расположена в PhoneBookExample\PhoneBookComp.

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

    Протестируйте функцию в командной строке MATLAB.

    friends(1).name = "Jordan Robert";
    friends(1).phone = 3386;
    friends(2).name = "Mary Smith";
    friends(2).phone = 3912;
    struct2table(makephone(friends))
    ans =
    
      2×3 table
    
             name          phone         external     
        _______________    _____    __________________
    
        "Jordan Robert"    3386     {'(508) 555-3386'}
        "Mary Smith"       3912     {'(508) 555-3912'}
    
  3. Создайте компонент.NET с приложением Library Compiler или compiler.build.dotNETAssembly использование следующей информации:

    Поле Значение
    Имя библиотекиPhoneBookComp
    ClassName PhoneBook
    Файл, чтобы скомпилироватьmakephone

    Например, если вы используете compiler.build.dotNETAssemblyВвод:

    buildResults = compiler.build.dotNETAssembly('makephone.m', ...
    'AssemblyName','PhoneBookComp', ...
    'ClassName','PhoneBook');

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

  4. Решите, используете ли вы C# или Visual Basic, чтобы получить доступ к компоненту.

    • C

      Если вы используете C#, запишите исходный код для приложения C#, это получает доступ к компоненту.

      Пример приложения для этого примера находится в
      PhoneBookExample\PhoneBookCSApp\PhoneBookApp.cs.

       PhoneBookApp.cs

    • Visual Basic

      Если вы используете Visual Basic, запишите исходный код для приложения Visual Basic, это получает доступ к компоненту.

      Пример приложения для этого примера находится в
      \PhoneBookExample\PhoneBookVBApp\PhoneBookApp.vb.

       PhoneBookApp.vb

    В любом случае, PhoneBookApp программа делает следующее:

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

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

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

    • Отображает получившийся массив структур.

  5. Откройте файл проекта.NET, который соответствует вашему языку приложения с помощью Visual Studio.

    • C

      Если вы используете C#, PhoneBookCSApp папка содержит файл проекта Visual Studio.NET для этого примера. Откройте проект в Visual Studio.NET путем двойного клика по PhoneBookCSApp.csproj в Windows Explorer. Можно также открыть его с рабочего стола путем щелчка правой кнопкой по PhoneBookCSApp.csproj и выбора Open Outside MATLAB.

    • Visual Basic

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

  6. Создайте ссылку на свой файл блока PhoneBookComp.dll расположенный в папке, где вы сгенерировали блок.

  7. Создайте ссылку на MWArray API, который расположен в:

    MATLABmatlabroot\toolbox\dotnetbuilder\bin\win64\<version>\MWArray.dll
    MATLAB Runtime<MATLAB_RUNTIME_INSTALL_DIR>\toolbox\dotnetbuilder\bin\win64\<version>\MWArray.dll

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

    Отображения приложения следующий выход:

    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

Смотрите также

| |

Похожие темы