您的位置:首页 > 编程语言 > MATLAB

C# Matlab数据类型转化

2016-04-21 10:41 495 查看
注意: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: