1. 程式人生 > >C# Matlab資料型別轉化

C# Matlab資料型別轉化

注意:1,C#呼叫matlab生成的dll中的函式時,入口引數只能是MWArray型別(Matlab中的資料型別)或者MWNumericArray型別(Matlab和C#的中間型別)(通過MWNumericArray型別可以點出許多轉換函式)

2,可以將字面值直接賦給MWArray或MWNumericArray型別的變數

3,可以C#的變數將強制型別轉化為MWArray型別或MWNumericArray型別(通過MWNumericArray())。

轉換:

一, C#資料型別到M型別(C#資料不是陣列)

1, 直接將值傳遞給已經初始化的MWArray陣列中的成員(將字面值直接賦給MWArray或MWNumericArray型別的變數)

2, 直接將資料型別賦值給已經初始化的MWNumericArray變數(可以C#的變數將強制型別轉化為MWArray型別或MWNumericArray型別(通過MWNumericArray())。)

3, 直接將字串類賦值給已經初始化的MWCharArray變數

二, 如果是陣列型別:

直接賦值給MWNumericArray變數(或強制型別轉換)

總之,MWArray是總型別,其它的以MW開頭,以Array結尾的變數型別都可以直接對它進行賦值或取值。


M型別到C++/C#資料型別

先將輸出引數強制轉化為MWNumericArray型別(MWNumericArray()),再呼叫各種轉化函式。(MWArray只有.ToString()和.ToArray()兩種方法)

1,public ArrayToArray(MWArrayComponent component); (有MWArrayComponent.Real和MWArrayComponent.Imaginary兩種//相當於取資料的實數部分或虛數部分)或public Array ToArray()的方法

將M型別轉換成C#的Array型別,然後可以直接轉換成其它型別的陣列。(轉化後的結果可以再強制轉化成其它型別的陣列)(得到陣列

2,publicoverride string ToString();

將M型別轉換成C#的字串型別;stringarror = mwArgout[2].ToString();

3,public ArrayToVector(MWArrayComponent component);(有MWArrayComponent.Real和MWArrayComponent.Imaginary兩種)

將M型別轉換成C#的Array型別,然後可以直接轉換成其它型別的向量。(得到向量,一維陣列

4,public byteToScalarByte();

將M型別轉換成C#的位元組型別;

5,publicdouble ToScalarDouble();

將M型別轉換成C#的雙精度型別;

6,public float ToScalarFloat();

將M型別轉換成C#的單精度型別;

7,public int ToScalarInteger();

將M型別轉換成C#的整型型別;

8,public long ToScalarLong();

將M型別轉換成C#的長整C/C++/C#資料型型別;

9,public short ToScalarShort();

將M型別轉換成C#的短整型型別


double[] a = { 1, 2, 3, 4, 5,6 };//輸入引數1

MWNumericArray ma = newMWNumericArray(3, 2, a);//轉換成matlab需求的格式(將a轉為3行2兩列的陣列)

更多的資料格式轉換,請用matlab的help索引MWArray

http://cn.mathworks.com/help/dotnetbuilder/MWArrayAPI/html/57290a83-9e6e-4179-a1b8-9fb0344544ce.htm

http://www.ithao123.cn/content-10818696.html