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
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
相关文章推荐
- matlab生成dll时子函数处理方法
- 改变matlab2014a工程文件的位置
- matlab2014a生成.net的dll文件打包失败的解决方法
- matlab——meanshift
- matlab里的svmtrain的输出model里,各参数的含义
- matlab中当前文件目录和搜索路径的区别
- matlab中blas库的学习
- matlab gui————定时器
- matlab 读取文件数据的方式
- matlab2013a安装libsvm3.21
- matlab 去除画图两段空白
- 如何利用代码标注 MATLAB 图像上的某些点
- Matlab函数备忘1
- DeepLearning: 数据预处理3:分割数据集(matlab代码)
- matlab isosurface函数绘制隐函数曲面
- PCA源代码 基于MATLAB的
- MATLAB文件夹路径生成list
- MATLAB算数运算符及常见函数
- Matlab图像处理之灰度变换函数
- 协方差矩阵的概念及matlab计算