Несколько классов в компоненте.NET

Цель

Цель примера состоит в том, чтобы показать вам следующее:

  • Как использовать продукт MATLAB® Compiler SDK™, чтобы создать блок (SpectraComp), содержащий больше чем один класс

  • Как получить доступ к компоненту в приложении C# (SpectraApp.cs), включая использование иерархии классов MWArray, чтобы представлять данные

    Примечание

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

  • Как создать и запустить приложение, с помощью Визуальной среды разработки Studio®.NET

SpectraComp компонента анализирует сигнал и изображает результат в виде графика. Класс, SignalAnalyzer, выполняет быстрое преобразование Фурье (FFT) на массиве входных данных. Метод этого класса, computefft, возвращает результаты того БПФ как два выходных массива — массив точек частоты и степени спектральная плотность. Второй класс, Plotter, изображает возвращенные данные в виде графика с помощью метода plotfft. Эти два метода, computefft и plotfft, инкапсулируют функции MATLAB.

Метод computefft вычисляет БПФ и степень спектральная плотность входных данных и вычисляет вектор точек частоты на основе длины вводимых данных и интервал выборки. Метод plotfft отображает на графике данные о БПФ и степень спектральная плотность в окне фигуры MATLAB. Код MATLAB для этих двух методов находится в двух файлах MATLAB, computefft.m и plotfft.m, который может быть найден в:

matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\SpectraExample\SpectraComp

 computefft.m

 plotfft.m

Процедура

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

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

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

  2. Запишите код MATLAB, к которому вы хотите получить доступ.

    Этот пример использует computefft.m и plotfft.m, которые уже находятся в вашей папке работы в SpectraExample\SpectraComp.

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

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

    Название проектаSpectraComp
    Имена классовPlotter   SignalAnalyzer
    Файлы, чтобы скомпилироватьcomputefft.m   plotfft.m

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

    Пример приложения для этого примера находится в SpectraExample\SpectraCSApp\SpectraApp.cs.

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

     SpectraApp.cs

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

    • Создает входной массив со значениями, представляющими случайный сигнал с двумя синусоидами на уровне 15 и 40 Гц, встроенных в нем

    • Создает массив MWNumericArray, который содержит данные

    • Инстанцирует объекта SignalAnalyzer

    • Вызывает метод computefft, который вычисляет БПФ, частоту и спектральную плотность

    • Инстанцирует объекта Plotter

    • Вызывает метод plotfft, который отображает данные на графике

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

    Следующий оператор

    MWNumericArray data= new MWNumericArray(MWArrayComplexity.Real, 
    MWNumericType.Double, numSamples);

    показывает, как использовать библиотеку классов MWArray, чтобы создать MWNumericArray, который используется в качестве входа метода к функции computefft.

    Следующий оператор

    SignalAnalyzer signalAnalyzer = new SignalAnalyzer(); 

    создает экземпляр класса SignalAnalyzer и следующий оператор

    MWArray[] argsOut= signalAnalyzer.computefft(3, data, interval);
    

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

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

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

    2. Добавьте ссылку на компонент MWArray, который является matlabroot \toolbox\dotnetbuilder\bin\architecture\framework_version
      \mwarray.dll.
      Смотрите Поддерживаемые Версии Microsoft.NET Framework для списка поддерживаемых версий среды.

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

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