Matlab传递数据时使用的方法,那么Matlab计算完成后在C#中应该怎么获取它的计算数据呢?

需要遵循两个基本步骤:

弄清楚Matlab函数传回的数据到底是什么格式?struct?cell?char?抑或是numeric?
将MWArray转化为对应的MW****Array并从MW****Array中获取所需的数据
如何传递数据
从MWArray到C#中的数字
MWNumericArray中的数据可以转化为Byte、double、float、integer、long和short类型,一般常用的就是int和double两种。

同样使用举例说明的方式来讲解:

MWArray mwArr = (MWNumericArray)new int[] { 1, 2, 3, 4 };
MWNumericArray arr = (MWNumericArray)mwArr;
int a = arr[1, 1].ToScalarInteger();
double b = arr[1, 2].ToScalarDouble();
1
2
3
4
ToScalar****这类函数是MWNumericArray内部数据转化为C#中数字类的数据类型所使用的方法,字面意思就是转化为某标量类型。

从MWArray到字符串
先从MWArray转化为MWCharArray,然后直接给string赋值

MWArray mwArr = "c# and matlab";
MWCharArray arr = (MWCharArray)mwArr;
string str = arr.ToString();
1
2
3
从MWArray到数组
先从MWArray转化为MWNumericArray,然后在C#中进行类型转化

对于二维数组:

MWArray mwArr = (MWNumericArray)new double[2, 2] { { 1.1, 2.2 }, { 3.3, 4.4 } };
Array arr = mwArr.ToArray();
double[,] dArr = (double[,])arr;
1
2
3
或者直接

double[,] dArr = (double[,])mwArr.ToArray();
1
对于一维数组,还有另外的方法可以使用:

MWArray mwArr2 = (MWNumericArray)new double[] { 1.1, 2.2 };
Array dArr3 = ((MWNumericArray)mwArr2).ToVector(MWArrayComponent.Real);
double[] arr = (double[])dArr3;
1
2
3
ToVector的参数MWArrayComponent.Real是指复数中的实部,与此相对的是MWArrayComponent.Imaginary,这个是虚部。如果二维数组使用上述方法转化,会变成一维数组。new double[2, 2] { { 1.1, 2.2 }, { 3.3, 4.4 } }会变成new double[]{1.1,3.3,2.2,4.4}。

最新文章

  1. dede 简略标题调用标签
  2. windows查看端口占用以及关闭相应的进程
  3. ThreadLocal是什么?保证线程安全
  4. 使用JPype实现Python调用JAVA程序
  5. Git的奇技淫巧🙈
  6. Why Stored Procedures?
  7. Delphi Data Types
  8. openstack名称发音收集
  9. Jenkins: 配置信息变更历史
  10. 团队作业4——第一次项目冲刺(Alpha版本)日志集合处
  11. Android: Only the original thread that created a view hierarchy can touch its views 异常
  12. koa2教程(一)-快速开始
  13. 【Python】 Web开发框架的基本概念与开发的准备工作
  14. ThreadPoolExecutor 学习笔记
  15. window10 蓝牙只能发不能收文件解决办法
  16. 使用Java解析XML
  17. 《深入理解JVM虚拟机》读书笔记
  18. Unity3D笔记 愤怒的小鸟<二> 实现Play界面
  19. C# 新建文档CreateNewDocument
  20. UNP学习总结(一)

热门文章

  1. Day 8:方法上自定义泛型、类上、接口上、泛型的上下限
  2. 从AppleWatch4发布后对手股价大跌看可穿戴市场未来
  3. 根据M3U8地址下载视频
  4. VS程序不显示控制台
  5. Codeforces Round #594 (Div. 1) Ivan the Fool and the Probability Theory
  6. maven镜像仓库
  7. 吴裕雄--天生自然 JAVASCRIPT开发学习: this 关键字
  8. AES加密中遇到的坑
  9. shell脚本判断进程是否运行
  10. 第 36 章 TCP/IP协议基础