⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example.cs

📁 MATLAB C# Book. This book is a great tutorial for C# programmers who use MATLAB to develop applicati
💻 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 + -