MATLAB® allows users to write functions with multiple outputs.
To code multiple outputs in C#, use the out keyword.
The following MATLAB code takes multiple inputs (i1, i2, i3)
and returns multiple outputs (o1, o2, o3),
after performing some checks and calculations.
In this example, the first input and output are of type double,
and the second input and output are of type int.
The third input and output are of type string.
To deploy this function with MATLAB Production Server™ software,
you need to write a corresponding method interface in C#, using the out keyword.
Specifying the out keyword causes arguments to
be passed by reference. When using out, ensure
both the interface method definition and the calling method explicitly
specify the out keyword.
The output argument data types listed in your C# interface (referenced
with the out keyword) must match the output argument
data types listed in your MATLAB signature exactly. Therefore,
in the C# interface (MultipleOutputsExample) and
method (TryMultipleOutputs) code samples, multiple
outputs are listed (with matching specified data types) in the same
order as they are listed in your MATLAB function.
After creating a new instance of MWHttpClient and
a client proxy, variables and the calling method, multipleoutputs,
are declared.
In the multipleoutputs method, values matching
each declared types are passed for output (1.2 for double, 10 for int,
and hello for string) to output1.
Note the following coding best practices illustrated by this example:
Both the MATLAB function signature and the C#
interface method signature use the name multipleOutputs.
Both MATLAB and C# code are processing three inputs and three
outputs.
MATLAB .NET interface supports direct conversion
from C# double array to MATLAB double array
and from C# string to MATLAB char array. For
more information, see Data Conversion with C# and MATLAB Types and Conversion Between MATLAB Types and C# Types.