概述
注意: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最后
以上就是无奈板凳为你收集整理的C# Matlab数据类型转化的全部内容,希望文章能够帮你解决C# Matlab数据类型转化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复