The drawgraph
function displays a plot of
input parameters x
and y
. The
purpose of the example is to show you how to:
Use the MATLAB® Compiler SDK™ product to convert
a MATLAB function (drawgraph
) to a method
of a .NET class (Plotter
) and wrap the class in
a .NET assembly (PlotComp
).
Access the component in a C# application (PlotApp.cs
)
by instantiating the Plotter
class and using the MWArray
class
library to handle data conversion.
Note:
For information about these data conversion classes, see the MATLAB
MWArray Class Library Reference, available in the |
Build and run the PlotCSApp
application,
using the Visual Studio® .NET development environment.
If you have not already done so, copy the files for this example as follows:
Copy the following folder that ships with the MATLAB product to your work folder:
matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\NET\PlotExample
At the MATLAB command prompt, change folder to the
new PlotExample\PlotComp
subfolder in your work
folder.
Write the drawgraph
function as you
would any MATLAB function.
This code is already in your work folder in PlotExample\PlotComp\drawgraph.m
.
From the MATLAB apps gallery, open the Library Compiler app.
Build the .NET component. See the instructions in Create a .NET Assembly for more details. Use the following information:
Project Name | PlotComp |
Class Name | Plotter |
File to compile | drawgraph.m |
Write source code for a C# application that accesses the component.
The sample application for this example is in
.matlabroot
\toolbox\dotnetbuilder\Examples\VSVersion
\PlotExample
\PlotCSApp\PlotApp.cs
The program listing is shown here.
using System; using MathWorks.MATLAB.NET.Utility; using MathWorks.MATLAB.NET.Arrays; using PlotComp; namespace MathWorks.Examples.PlotApp { /// <summary> /// This application demonstrates plotting x-y data by graphing a simple /// parabola into a MATLAB figure window. /// </summary> class PlotCSApp { #region MAIN /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { try { const int numPoints= 10; // Number of points to plot // Allocate native array for plot values double [,] plotValues= new double[2, numPoints]; // Plot 5x vs x^2 for (int x= 1; x <= numPoints; x++) { plotValues[0, x-1]= x*5; plotValues[1, x-1]= x*x; } // Create a new plotter object Plotter plotter= new Plotter(); // Plot the two sets of values - Note the ability to cast the native array to a MATLAB numeric array plotter.drawgraph((MWNumericArray)plotValues); Console.ReadLine(); // Wait for user to exit application } catch(Exception exception) { Console.WriteLine("Error: {0}", exception); } } #endregion } }
The program does the following:
Creates two arrays of double values
Creates a Plotter
object.
Calls the drawgraph
method to plot
the equation using the MATLAB plot
function.
Uses MWNumericArray
to represent
the data needed by the drawgraph
method to plot
the equation.
Uses a try-catch
block to catch
and handle any exceptions.
The statement
Plotter plotter= new Plotter();
creates an instance of the Plotter
class,
and the statement
plotter.drawgraph((MWNumericArray)plotValues);
explicitly casts the native plotValues
to MWNumericArray
and
then calls the method drawgraph
.
Build the PlotCSApp
application using Visual Studio .NET.
The PlotCSApp
folder contains a Visual Studio .NET
project file for this example. Open the project in Visual Studio .NET
by double-clicking PlotCSApp.csproj
in Windows® Explorer.
You can also open it from the desktop by right-clicking PlotCSApp.csproj > Open Outside
MATLAB.
Add a reference to the MWArray
component,
which is matlabroot
\toolbox\dotnetbuilder\bin\architecture
\framework_version
\mwarray.dll.
Add or, if necessary, fix the location of a reference
to the PlotComp
component which you built in a
previous step. (The component, PlotComp.dll
, is
in the \PlotExample\PlotComp\x86\V2.0\Debug\distrib
subfolder
of your work area.)
Build and run the application in Visual Studio .NET.