C# matlab混合编程

徐凯Email:xukai19871105@http://www.doczj.com/doc/1a6e191fff00bed5b9f31dbf.html

这几天突然想搞一搞以前没有搞定的MATLABC#混合编程,今天把原来编写的代码拿出来看看,然后结合网上一些正确的和一些错误的代码看看,最后详细参考了MATLAB的帮助文档,总算搞定了C#和MATLAB的混合编程。当然也不是完全搞定,仅仅完成了很小的一部分。总结一下,也就是熟悉MW Array 和.NET之间的数据类型转换。下面就和大家分享一下吧。

查看MATLAB提供一个最简单的关于绘图函数的例子,我先实践了一下MATLAB中的代码,发现发现有问题,有点怀疑matlab帮助文档的代码有问题,虽然这种情况真的非常的少见,但是后来证明我的怀疑是正确的。MATLAB原来C#的代码大概是这样的。

//二维数组,Y=X^2

double[,] plotValue = new double[10, 2];

for (int i = 0; i < 10; i++)

{

plotValue[i, 0] = i;

plotValue[i, 1] = i * i;

}

//实例化Calculater对象

Calculater myCalculater = new Calculater();

//调用drawgraph方法

myCalculater.drawgraph((MWNumericArray)plotValue);

C#的代码中说起来也非常简单,声明一个二维数组,使用for循环给每一个元素赋值,这个数组的第0列是X坐标的值,数组的第1列是Y坐标的值,两个坐标的关系是Y=X^2。而MATLAB中m文件的函数如下:

function drawgraph(coords)

plot(coords(1,:), coords(2,:));

MATLAB的代码的意思也很简单,以coords矩阵的第1行的所有列为X坐标,第2行的所有列为Y轴。在这里一看发现了一个问题,我自己心里想可能是matlab提供的范例似乎有点问题,C#创建的数组是10行2列的,而drawgraph的函数似乎想接收一个2行10列的数据。这样导致的两个结果,第一,我个人总是得不到想要的结果,总给我画一个空图,这也是我上次尝试的时候放弃的原因。第二,由于这个debug存在,所以我就仔细研究了MW Array这个类型和与C#之间的类型转换,这也是就是自学的快乐所在,解决一个问题还可以学到很多其他的东西,所以我每次都“乐此不疲”。

话说回来,如果把这个行列的关系搞清楚的话,就可以得到想要的结果。例如我把matlab的m文件重写成这样的形式

function drawgraph(coords)

plot(coords(:,1), coords(:,2),'*');

那么这条抛物线就很自然的得到了,结果如图所示啊。为了表达的清楚一点,我还把标记换成了*。

怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记相关推荐

  1. 基础知识(二)matlab与c++混合编程之经验笔记

    开发环境:win7 64位+vs2010+matlab 学习matlab与c++混合编程的路上有时候会遇到莫名其妙的错误,因此做一下记录: 2015年: 1.由于系统是64位,装的matlab的链接库 ...

  2. matlab输出lccde_Matlab与Visual C++混合编程处理全站仪数据的方法

    Matlab 与 Visual C++ 混合编程处理全站仪数据的方法 胡加星,刘立龙,刘靖晔 [摘 要] 内业数据检核中经常要对点的外业实测坐标与内业成图后的坐标进行 比较,以此来发现是否出现造点或是 ...

  3. matlab如何打开dcm_MatLab 与 visual studio 混合编程环境配置

    一.本文可以应用与以下matlab和visual studio版本: MatLab: Matlab2017a,Matlab2017b,Matlab2018a,MatLab2018b,MatLab201 ...

  4. matlab打开模型,老版本Matlab模型打开方式

    mdl文件在6.5里面做的,但是到了新版本里面却打不开,下面就是相关信息: Warning: Unable to load model file 'd:\MATLAB7\work\*.mdl'. Ru ...

  5. matlab 打开txt文件窗口,Matlab读取txt文件、xlsx文件

    MATLAB读取和写入txt文件 https://blog.csdn.net/jisuanjiguoba/article/details/79997805 txt文件中既有空格又有tab键,请问怎么正 ...

  6. tdms用matlab打开,TDMS文件及其Matlab读取方法.pdf

    TDMS文件及其Matlab读取方法 10 4 Vol. 10 No. 4 第 卷第 期 兰州石化职业技术学院学报 2010 12 Journal of Lanzhou Petrochemical C ...

  7. matlab 打开软件报错,matlab程序错误,提示如下【弄了半夜还是不行】 - 数学 - 小木虫 - 学术 科研 互动社区...

    function [x,y,Y]=levydistrintheorytest(t0,lambda,T,a,b); %  计算理论的二维levy分布的图象   画出来的3维曲面图 %   t0 :lev ...

  8. matlab打开pcm文件格式,用MATLAB实现PCM编码

    PCM编码程序 %修改抽样间隔和程序最后两行 %可以观察量化输入输出关系 n=input('请输入量化级数,k=[8]'); if isempty(n), n=8; end %产生题目要求的函数 en ...

  9. D:MATLAB.N个实用技巧-MATLAB中文论坛精华总结

    在为此书作序的时候,MATLAB中文论坛的主题已经达到10万,帖子超过100万,有效会员30万.MATLAB的基础技巧已经在论坛里得到了充分的展示与探讨,大家常见的问题大部分获得了解答!是时候做一个小 ...

最新文章

  1. oracle加as报错,【Oracle】-【sqlplus / as sysdba登录报错问题】-新用
  2. CentOS下命令行和桌面模式的切换方法
  3. ubuntu下mysql编码格式设置_Ubuntu 16.04.1下修改MySQL默认编码
  4. 图片文件夹要放在html,在网页中插入图像,若图像文件位于html文件的上两级文件夹,则在文件名之前加入()...
  5. Android 如何自定义EditText 下划线?
  6. 【渝粤教育】广东开放大学 操作系统原理与应用 形成性考核 (46)
  7. Scrapyd API的安装
  8. 搭建Eclipse 2020安卓开发环境
  9. 网站性能测试工具 webbench 的安装和使用-linux
  10. java开发面试项目经验
  11. 信息安全风险评估学习笔记
  12. python 暑期培训
  13. 扬子苦荞啤酒 一杯苦荞啤酒,精彩你的世界
  14. Java基础面试题简单总结
  15. 大数据技术之 Linux 基础
  16. fio 全称是flexible I/O tester(灵活的I/O测试工具)。可以根据用户指定I/O类型进行多线程/进程的I/O负载模拟。
  17. ffmpeg 音频解码一
  18. java开发自学怎么样_为什么说自学java开发不可取?
  19. 中国住宅设施杂志中国住宅设施杂志社中国住宅设施编辑部2022年第9期目录
  20. 校企合作趋紧密化:联想集团CTO芮勇出任东南大学人工智能双院兼职院长

热门文章

  1. jemeter多场景混合案例_Redis 混合存储最佳实践指南
  2. webSocket详解
  3. spring cloud微服务分布式云架构--hystrix的使用
  4. 使用Rust + Electron开发跨平台桌面应用 ( 一 )
  5. 固定资产打印条码标签应用方案
  6. 系统异常设计规范与原则
  7. 【安全运维】 linux 系统账户,网络,简易安全加固方案(第一部分),经测试可行...
  8. 隔年的衣服发黄处理方法
  9. freemarker基本语法及实例
  10. Linux压缩/解压缩