matlab与net3.5,[ASP.net教程]C#与MATLAB混合编程

[ASP.net教程]C#与MATLAB混合编程

0 2015-12-29 16:01:48

参考:http://www.cnblogs.com/eniac12/p/4390845.html

C#版本:VS2015        matlab版本:matlab2015a

使用版本不一样,精简了上文中的主要程序:

MatrixOpera.m%--------------------------------------------------------function [addRlt,minusRlt]=MatrixOpera(a,b)% 矩阵相加,相减[m1,n1]=size(a);[m2,n2]=size(b);if m1~=m2 || n1~=n2 display('矩阵大小不相同') error('参数错误');endaddRlt=a+b;minusRlt=a-b;end%-----------------------------------------------------------

C#调用过程matPrj test = new matPrj(); //将myMathClass类实例化 Array a = new double[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };//定义两个输入参数 Array b = new double[,] { { 1, 1 }, { 1, 1 }, { 1, 1 } }; Array c = new double[3, 2];//定义C#中接收输出参数的类型 Array d = new double[3, 2]; //输入参数成功转化为两个MWArray元素类型 MWArray matlab_a = (MWNumericArray)a; MWArray matlab_b = (MWNumericArray)b; //此例实现了两个三行两列的矩阵相加减 MWArray[] agrsOut = test.MatrixOpera(2, matlab_a, matlab_b); //转化为二维数组 c = agrsOut[0].ToArray(); d = agrsOut[1].ToArray(); //一定要注意最后接收参数的转化,不同类型的接收参数用的转换函数不同 //二维数组用ToArray()函数转换 //一维数组用ToVector(MWArrayComponent.Real)函数转换 //单个double值用ToScalarDouble()函数转换 //单个int值用ToScalarInteger()函数转换 for (int i = 0; i <= 2; i++)//输出结果验证 { for (int j = 0; j <= 1; j++) { textBox1.Text += c.GetValue(i, j).ToString() + " "; textBox2.Text += d.GetValue(i, j).ToString() + " "; } textBox1.Text += "\r\n";//换行 textBox2.Text += "\r\n"; } }

参考:http://cn.mathworks.com/help/compiler_sdk/dotnet/integrate-your-net-assembly-into-a-c-application.html?searchHighlight=Call%20MATLAB%20method%20compiled%20to%20.NET%20assembly

本文网址:http://www.shaoqun.com/a/172924.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

C#

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值