This example is similar to Integrating a Simple MATLAB Function, except that the MATLAB® function to be encapsulated takes a variable number of arguments instead of just one.
The purpose of the example is to show you the following:
How to use the MATLAB
Compiler SDK™ product to convert
a MATLAB function, drawgraph
, which takes
a variable number of arguments, to a method of a .NET class (Plotter
)
and wrap the class in a .NET assembly (VarArgComp
).
The drawgraph
function (which can be called as
a method of the Plotter
class) displays a plot
of the input parameters.
How to access the component in a C# application (VarArgApp.cs
)
by instantiating the Plotter
class and using MWArray
to
represent data.
For information about these data conversion classes, see the MATLAB
MWArray Class Library Reference, available in the
folder,
where matlabroot
\help\dotnetbuilder\MWArrayAPImatlabroot
represents your MATLAB installation
folder
How to build and run the VarArgDemoApp
application,
using the Visual
Studio® .NET development environment.
Step-by-Step Procedure
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\VarArgExample
At the MATLAB command prompt, cd
to
the new VarArgExample
subfolder in your work folder.
Write the MATLAB functions as you would any MATLAB function.
The code for the functions in this example is as follows:
This code is already in your work folder in \VarArgExample\VarArgComp\
.
From the MATLAB apps gallery, open the Library Compiler app.
Build the .NET component. See the instructions in Generate a .NET Assembly and Build a .NET Application for more details. Use the following information:
Project Name | VarArgComp |
Class Name | Plotter |
File to compile | extractcoords.m drawgraph.m |
Write source code for an application that accesses the component.
The sample application for this example is in VarArgExample\VarArgCSApp\VarArgApp.cs
.
The program listing is shown here.
The program does the following:
Initializes three arrays (colorSpec
, data
,
and coords
) using the MWArray
class
library
Creates a Plotter
object
Calls the extracoords
and drawgraph
methods
Uses MWNumericArray
to represent
the data needed by the methods
Uses a try-catch
block to catch
and handle any exceptions
The following statements are alternative ways to call the drawgraph
method:
data= (MWNumericArray)plotter.drawgraph(colorSpec, coords[0], coords[1], coords[2],coords[3], coords[4]); ... data= (MWNumericArray)plotter.drawgraph((MWArray)colorSpec, coords);
Build the VarArgApp
application using Visual
Studio .NET.
The VarArgCSApp
folder contains a Visual
Studio .NET
project file for this example. Open the project in Visual
Studio .NET
by double-clicking VarArgCSApp.csproj
in Windows® Explorer.
You can also open it from the desktop by right-clicking VarArgCSApp.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 VarArgComp
component which you built in
a previous step. (The component, VarArgComp.dll
,
is in the \VarArgExample\VarArgComp\x86\v4.0\debug\distrib
subfolder
of your work area.)
Build and run the application in Visual Studio .NET.