主要内容

在net程序集使用多个类

这个例子向您展示了如何创建一个. net汇编,使用多个类来分析信号,图结果。

在本例中,您执行以下步骤:

  • 使用MATLAB®编译器SDK™产品创建一个大会SpectraComp)包含不止一个类

  • 在c#应用程序访问组件(SpectraApp.cs)或微软®Visual Basic®应用程序(SpectraApp.vb),包括使用MWArray类层次结构来表示数据。

  • 使用Visual Studio构建并运行应用程序®net开发环境。

SpectraComp应用程序

SignalAnalyzer执行一个快速傅里叶变换(FFT)输入数据数组。这个类的一个方法,computefft返回的结果,FFT的两个输出arrays-an阵列频率点和功率谱密度。

第二个类,绘图机、图形使用返回的数据plotfft方法。这两种方法computefftplotfft封装MATLAB函数。computefft计算FFT功率谱密度和频率点的输入数据和计算一个向量基于输入的数据的长度和采样间隔。plotfft块FFT数据和MATLAB的功率谱密度图窗口。

文件

MATLAB函数 computefft.m
plotfft.m
MATLAB函数的位置 matlabroot\工具箱\ dotnetbuilder \ \和例子版本净\ SpectraExample \ SpectraComp \ \
c#代码的位置 matlabroot\工具箱\ dotnetbuilder \ \和例子版本\ \ SpectraExample \ SpectraCSApp净\ SpectraApp.cs
Visual Basic代码位置 matlabroot\工具箱\ dotnetbuilder \ \和例子版本\ \ SpectraExample \ SpectraVBApp净\ SpectraApp.vb

过程

  1. 复制以下文件夹MATLAB附带的产品到你的工作文件夹:

    matlabroot\工具箱\ dotnetbuilder \ \和例子版本\ \ SpectraExample净

    在MATLAB命令提示符下,导航到新SpectraExample \ SpectraComp子文件夹在你的工作文件夹。

  2. 检查MATLAB函数computefft.mplotfft.m

    computefft.m

    plotfft.m

  3. 构建的。net组件库的编译器应用程序或compiler.build.dotNETAssembly

    库的名字SpectraComp。地图类命名SignalAnalyzer的函数computefft.m,第二个地图类命名绘图机的函数plotfft.m

    例如,如果您正在使用compiler.build.dotNETAssembly类型:

    提出= containers.Map;提出(“SignalAnalyzer”)=“computefft.m”;提出(“绘图机”)=“plotfft”;buildResults = compiler.build.dotNETAssembly(提出,“AssemblyName”,“SpectraComp”);

    更多细节,请参阅说明书生成net程序集和构建. net应用程序

  4. 决定你是否正在使用c#或Visual Basic访问组件。

    • c#

      如果你是使用c#,编写源代码的c#应用程序访问的组件。

      这个示例的示例应用程序SpectraExample \ SpectraCSApp \ SpectraApp.cs

      SpectraApp.cs

      以下语句展示了如何使用MWArray构造一个类库MWNumericArray这是作为方法的输入computefft函数。

      =新MWNumericArray (MWArrayComplexity MWNumericArray数据。真实的,MWNumericType。双,numSamples);

      下面的语句创建类的实例SignalAnalyzer和调用方法computefft3,要求输出。

      SignalAnalyzer SignalAnalyzer = new SignalAnalyzer ();…MWArray [] argsOut = signalAnalyzer.computefft(3、数据时间间隔);
    • Visual Basic

      如果您正在使用Visual Basic,编写源代码的Visual Basic应用程序访问的组件。

      这个示例的示例应用程序SpectraExample \ SpectraVBApp \ SpectraApp.vb

      SpectraApp.vb

      展示如何使用以下语句MWArray类库来构建必要的数据类型:

      昏暗的数据作为MWNumericArray = New MWNumericArray_ (MWArrayComplexity。真实的,MWNumericType。双,numSamples)…昏暗的resultArray MWNumericArray = New MWNumericArray_ (MWArrayComplexity。复杂,MWNumericType。双,numElements)

      下面的语句创建类的实例SignalAnalyzer和调用方法computefft三个输出,要求:

      昏暗的signalAnalyzer signalAnalyzer = New signalAnalyzer…昏暗的argsOut()作为MWArray = signalAnalyzer.computefft(3、数据MWArray.op_Implicit(间隔))

    在这两种情况下,SpectraApp程序如下:

    • 构造一个输入数组值代表一个随机信号和两个正弦曲线15岁和40 Hz嵌入

    • 创建一个MWNumericArray数组,其中包含的数据

    • 实例化一个SignalAnalyzer对象

    • 调用computefft方法,该方法计算FFT、频率和谱密度

    • 实例化一个绘图机对象

    • 调用plotfft方法,该地块数据

    • 使用一个试一试/块处理异常

  5. 打开。net项目文件对应于应用程序语言使用Visual Studio。

    • c#

      如果你是使用c#,SpectraCSApp文件夹包含一个Visual Studio . net项目文件的例子。在Visual Studio . net通过双击打开该项目SpectraCSApp.csproj窗户®资源管理器。你也可以从桌面右击打开它SpectraCSApp.csproj并选择外开放的MATLAB

    • Visual Basic

      如果您正在使用Visual Basic,SpectraVBApp文件夹包含一个Visual Studio . net项目文件的例子。在Visual Studio . net通过双击打开该项目SpectraVBApp.vbprojWindows资源管理器。你也可以从桌面右击打开它SpectraVBApp.vbproj并选择外开放的MATLAB

  6. 添加程序集引用文件SpectraComp.dll

  7. 添加一个引用MWArrayAPI。

    如果MATLAB是安装在您的系统上 matlabroot\ \ dotnetbuilder \ bin \ win64 \工具箱< framework_version >\ MWArray.dll
    如果MATLAB运行时在您的系统上安装吗 < MATLAB_RUNTIME_INSTALL_DIR >\ \ dotnetbuilder \ bin \ win64 \工具箱< framework_version >\ MWArray.dll

  8. 建立和运行SpectraApp在Visual Studio . net应用程序。

    程序显示以下输出:

    FFT: 1.0 e + 2 * 4.8646 + 0.0000我-0.0326 + -0.0289 + 0.1080我-0.0141 - 0.0148 0.0674 - 0.0487 0.0237 0.0753 0.0275 - 0.0101 + 0.0669我-0.0429 + 0.0472我0.0803 - 0.1163 -0.0619 - 0.1072 0.0565 - 0.0502我-0.0223 + 0.0587 -0.0853 - 0.0812 -0.0662 - 0.0143我0.0543 - 0.0972 0.0814 - 0.0463 -0.0981 - -0.0339 0.0190我0.0042 + 0.0083 + 0.0290我0.0291 + 0.0036频率:0.0000 + 0.0000我0.0999 + 0.0000 0.1998 0.2997 + 0.0000 + 0.0000我0.3996 + 0.0000我0.4995 + 0.0000 0.5994 0.6993 + 0.0000 + 0.0000我0.7992 + 0.0000我0.8991 + 0.0000 0.9990 1.0989 + 0.0000 + 0.0000我1.1988 + 0.0000我1.2987 + 0.0000 1.3986 1.4985 + 0.0000 + 0.0000我1.5984 + 0.0000我1.6983 + 0.0000 1.7982 1.8981 + 0.0000 + 0.0000我功率谱密度:15.3755 0.0000 0.1274我0.3534 + 0.0000 + 0.0000 + 0.0646 + 0.0000我0.2628 + 0.0000我0.3183 + 0.0000 0.0925 0.2016 + 0.0000 + 0.0000我0.4465 + 0.0000我0.3912 + 0.0000 0.2387 0.1985 + 0.0000 + 0.0000我0.3723 + 0.0000我0.2140 + 0.0000 0.3520 0.2960 + 0.0000 + 0.0000我0.3158 + 0.0000我0.0294 + 0.0000 0.1411 0.0927 + 0.0000 + 0.0000我绘制功率谱密度,请稍等…
    图显示一个图的功率谱密度。

另请参阅

||

相关的例子

更多关于