📄 example.cs
字号:
using System;
using System.Runtime.InteropServices;
using UtilityMatlabCompilerVer4 ;
namespace MatlabCSharpExample
{
class Example
{
//constructor
public Example()
{
}
[STAThread]
static void Main(string[] args)
{
Example obj = new Example() ;
Console.WriteLine("Hello mxArray class") ;
Console.Write("\n") ;
obj.doubleAndmxArrayScalarReal() ;
Console.Write("\n") ;
obj.doubleAndmxArrayScalarComplex() ;
Console.Write("\n") ;
obj.doubleAndmxArrayVectorReal() ;
Console.Write("\n") ;
obj.doubleAndmxArrayVectorComplex() ;
Console.Write("\n") ;
obj.doubleAndmxArrayMatrixReal() ;
Console.Write("\n") ;
obj.doubleAndmxArrayMatrixComplex() ;
}
/* **************************** */
public void doubleAndmxArrayScalarReal()
{
Console.WriteLine("1a. double scalar and a real mxArray " ) ;
double db_scalar = 1.1 ;
IntPtr mx_scalar = (IntPtr) null ;
// transfer scalar value from C# double to a real mxArray
mx_scalar = MatlabCSharp.double2mxArray_scalarReal(db_scalar) ;
// tranfer scalar value from a real mxArray to C# a double scalar
double db_scalarReturn = MatlabCSharp.mxArray2double_scalarReal(mx_scalar) ;
// print out
Console.WriteLine(" db_scalarReturn = {0}", db_scalarReturn.ToString() ) ;
}
/* **************************** */
public void doubleAndmxArrayScalarComplex()
{
Console.WriteLine("1b. double scalar and a complex mxArray " ) ;
double db_Real = 1.1 ;
double db_Imag = 2.2 ;
// transfer scalar values from C# double to a complex mxArray
IntPtr mx_Complex = (IntPtr) null ;
mx_Complex = MatlabCSharp.double2mxArray_scalarComplex(db_Real, db_Imag) ;
// transfer scalar values from a complex mxArray to C# double scalars
double db_returnReal = 0 ;
double db_returnImag = 0 ;
MatlabCSharp.mxArray2double_scalarComplex(
mx_Complex, ref db_returnReal, ref db_returnImag) ;
// print out
Console.WriteLine(" db_returnReal = {0}", db_returnReal.ToString() ) ;
Console.WriteLine(" db_returnImag = {0}", db_returnImag.ToString() ) ;
}
/* **************************** */
public void doubleAndmxArrayVectorReal()
{
Console.WriteLine("2a. double vector and a real mxArray " ) ;
double[] db_vector = { 1.1, 2.2, 3.3 } ;
// transfer vector value from C# double to a real mxArray
/* row vector has number of row = 1 */
IntPtr mx_vectorRow = (IntPtr) null ;
mx_vectorRow = MatlabCSharp.double2mxArray_vectorRowReal(db_vector) ;
/* column vector has number of column = 1 */
IntPtr mx_vectorCol = (IntPtr) null ;
mx_vectorCol = MatlabCSharp.double2mxArray_vectorColumnReal(db_vector) ;
// tranfer vector value from a real mxArray to a C# double vector
double[] db_vectorRowReturn = MatlabCSharp.mxArray2double_vectorReal(mx_vectorRow) ;
double[] db_vectorColReturn = MatlabCSharp.mxArray2double_vectorReal(mx_vectorCol) ;
// print out
Console.WriteLine(" Row return vector :" ) ;
MatlabCSharp.printVector(db_vectorRowReturn ) ;
Console.WriteLine(" Column return vector :" ) ;
MatlabCSharp.printVector(db_vectorColReturn ) ;
// Note : return vector db_vectorRowReturn or db_vectorColReturn
// from row vector or column mxArray vector is a vecor.
// that's not a matrix (3,1) or (1,3).
// In this case db_vectorRowReturn and db_vectorColReturn are identical
}
/* **************************** */
public void doubleAndmxArrayVectorComplex()
{
Console.WriteLine("2b. double vector and a complex mxArray " ) ;
double[] db_Real = { 1.1, 2.2, 3.3 } ;
double[] db_Imag = { 4.4, 5.5, 6.6 } ;
int vectorSize = 3 ;
// transfer vector values from C# double to a complex mxArray
/* row vector has number of row = 1 */
IntPtr mx_complexRow = (IntPtr) null ;
mx_complexRow = MatlabCSharp.double2mxArray_vectorRowComplex(db_Real, db_Imag) ;
/* column vector has number of column = 1 */
IntPtr mx_complexCol = (IntPtr) null ;
mx_complexCol = MatlabCSharp.double2mxArray_vectorColumnComplex(db_Real, db_Imag) ;
// tranfer vector values from a complex mxArray to C# double vectors
double[] db_returnRowReal = new double [vectorSize] ;
double[] db_returnRowImag = new double [vectorSize] ;
MatlabCSharp.mxArray2double_vectorComplex(
mx_complexRow, ref db_returnRowReal, ref db_returnRowImag) ;
Console.WriteLine("1. Real value ") ;
MatlabCSharp.printVector(db_returnRowReal) ;
Console.WriteLine("1a. Imaginary value ") ;
MatlabCSharp.printVector(db_returnRowImag) ;
//
double[] db_returnColReal = new double [vectorSize] ;
double[] db_returnColImag = new double [vectorSize] ;
MatlabCSharp.mxArray2double_vectorComplex(
mx_complexCol, ref db_returnColReal, ref db_returnColImag) ;
Console.WriteLine("1. Real value ") ;
MatlabCSharp.printVector(db_returnColReal) ;
Console.WriteLine("1a. Imaginary value ") ;
MatlabCSharp.printVector(db_returnColImag) ;
}
/* **************************** */
public void doubleAndmxArrayMatrixReal()
{
Console.WriteLine("3a. double matrix and a real mxArray " ) ;
double[,] db_A = {{ 1.1, 2.2, 3.3} , {4.4, 5.5, 6.6} , {7.7, 8.8, 9.9} } ;
// transfer matrix values from C# double to a real matrix mxArray
IntPtr mx_A = (IntPtr) null ;
mx_A = MatlabCSharp.double2mxArray_matrixReal(db_A) ;
// tranfer matrix values from a real mxArray to a C# double matrix
double[,] db_ReturnA = MatlabCSharp.mxArray2double_matrixReal(mx_A) ;
MatlabCSharp.printMatrix(db_ReturnA) ;
}
/* **************************** */
public void doubleAndmxArrayMatrixComplex()
{
Console.WriteLine("3b. double matrix and a real mxArray ") ;
double[,] db_Real = {{ 1.1, 2.2, 3.3} , {4.4, 5.5, 6.6} , {7.7, 8.8, 9.9} } ;
double[,] db_Imag = {{ 11 , 12 , 13 } , {14 , 15 , 16 } , {17 , 18 , 19 } } ;
int row = 3 ;
int col = 3 ;
// transfer matrix values from C# double to a complex matrix mxArray
IntPtr mx_complex = (IntPtr) null ;
mx_complex = MatlabCSharp.double2mxArray_matrixComplex(db_Real, db_Imag) ;
// tranfer matrix values from a complex mxArray to a C# double matrixes
double[,] db_returnReal = new double [row, col] ;
double[,] db_returnImag = new double [row, col] ;
MatlabCSharp.mxArray2double_matrixComplex(mx_complex, ref db_returnReal, ref db_returnImag) ;
// print out
Console.WriteLine("Real matrix :") ;
MatlabCSharp.printMatrix(db_returnReal) ;
Console.WriteLine("Imaginary matrix :") ;
MatlabCSharp.printMatrix(db_returnImag) ;
}
} // end class
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -