C#与MATLAB之间传递参数

C#与MATLAB之间传递参数

ID:37910452

大小:45.50 KB

页数:6页

时间:2019-06-02

C#与MATLAB之间传递参数_第1页
C#与MATLAB之间传递参数_第2页
C#与MATLAB之间传递参数_第3页
C#与MATLAB之间传递参数_第4页
C#与MATLAB之间传递参数_第5页
资源描述:

《C#与MATLAB之间传递参数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C#与MATLAB之间传递参数MWNumericArray是MWArray和c#中数据的中间类,怎么用?怎样在C#与matlab间传递参数?a.double型、int型等数值类型的变量传递MWNumericArrayi=null,result=mydouble;i=4;myClassmyclass=newmyClass();//实例化result=(MWNumericArray)myclass.myfunc(i);b.字符串(需要用到MWCharArray和MWArray转换)MWCharArr

2、ayFileName=myString;MWNumericArraysensitivity;sensitivity=(MWNumericArray)myClass.myAlgorithm((MWArray)FileName);c.多个输出参数组成的数组MWNumericArrayout_Arr=(MWNumericArray)out_Args[1];//取出第一个参数返回的数组(matlab返回的数组下界是从1开始的)取出数组中的一个元素值mydouble=out_Arr[i].ToScalar

3、Double();如上面例子ToScalarDouble一类的toXXXX等方法还有许多。d.result.toArray可以把matlab返回的矩阵变成C#的nxm数组,eg:double[,]csArray=(double[,])result.ToArray(MWArrayComponent.Real);e.将数组传入Matlab(和传递单个数值的方法一样)double[,]dbx=newdouble[2,2]{{1,2},{3,4}};MWNumericArrayx=dbx;myclass

4、.picture(x);--------------------------------------------------------------------------------M文件如何接收和返回?functionx=test(h,d)//接收两个参数,返回一个function[x1,x2]=test(h,d)//返回数组--------------------------------------------------------------------------------以上为.

5、Net方式连接,以下为COM方式连接(编译速度而言.net的方式要快上很多,而且似乎比较稳定)matlab编译工作-mbuild-setup-deploytool,MatlabBuilderfor.net,GenericCOMComponent-添加m函数文件(eg:myfunc.m),改类名(eg:myComClass),build注册dllregsvr32myCom.dllregsvr32mwcomutil.dllVS2005调用:-Reference加Com控件-调用示例double[,]

6、arr=null;objectin_a,out_a;in_a=500;out_a=arr1;myCom.myComClassmc=newmyCom.myComClass();mc.myfunc(1,refout_a,in_a);--------------------------------------------------------------------------------小例子:(提取matlab返回的两个参数并转化为C#的矩阵)Codetestz.testzclassst=new

7、testz.testzclass();MWArray[]max=st.testz(2);MWNumericArrayx1=(MWNumericArray)max[0];MWNumericArrayx2=(MWNumericArray)max[1];double[,]location1=(double[,])x1.ToArray(MWArrayComponent.Real);double[,]location2=(double[,])x2.ToArray(MWArrayComponent.Real

8、);label1.Text=location1[1,2].ToString();其中的M文件:Codefunction[x1,x2]=testz()x1=[123;456;789;];x2=[987;654;321;];另一篇:以下是本人编程中总结的一些思路,拿出来与大家共享。不对之处,请留言说明。版本:MatlabR2007b,VisualStudio2005C++/C#数据类型到M类型此方向转换十分简单。如果C++/C#数据不是数组,直接将值传递给已经初始化的MWArray数组中的成员直接将

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。