欢迎来到天天文库
浏览记录
ID:38266390
大小:325.60 KB
页数:4页
时间:2019-05-25
《Matlab中几种数据平滑方法产生结果与.NET数据类型的转换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab中的数据平滑方法产生结果与.NET中数据类型转换总结GalaxyGap2012-12-111调用smooth函数第一步,在Matlab中调用smooth方法,写好平滑函数。由于调用smooth方法时可以传入不同的参数,以此来选择不同的平滑方法,因此可以针对每一种平滑方法写一个函数,每一个函数对应一个M文件。第二步,在Matlab命令行中运行deploytool命令调出Matlab的编译打包用户界面,新建一个.NETAssembly工程,设置工程名为SmoothTool(该工程名在编译之后会成
2、为生成组件的名称)。在Build标签下单击AddClasses,并把Class1改成SmoothToolClass,然后把第一步写好的M文件全部添加到该类下。设置编译环境,在ProjectSettings对话框的.NET标签下,将MicrosoftFramework的版本选为4.0,因为我公司目前使用的VS版本都是VS2010,其对应的.NETFramework版本就是4.0.最后编译生成.NET组件(确切地说是.NET程序集)。第三步,对生成的.NET程序集进行测试,主要是搞清楚Matlab与.NET
3、的数据交换。笔者前面有一篇关于Matlab数据类型与.NET数据类型转换的总结。这篇总结里介绍了基本的转换过程与一些注意事项,这里就不再详细地解释其中涉及到的细节了。只是对输入输出做一个验证。将以下代码输入Main函数:double[]t=newdouble[500];double[]x=newdouble[500];//Generateanarraycontaining500elementsRandomrnd=newRandom();for(inti=0;i<500;i++){t[i]=i*Math.
4、PI/250.0;x[i]=100*Math.Sin(i*Math.PI/250.0)+rnd.NextDouble()*15;}MWNumericArrayinputArray=newMWNumericArray(x);MWNumericArrayresultArray;SmoothToolClassst=newSmoothToolClass();resultArray=(MWNumericArray)st.MovingSmooth(inputArray,30.0);double[,]result=(
5、double[,])resultArray.ToArray();for(inti=0;i6、得到相同结构的输出,即500×1的二维数组。图1调用smooth返回的结果变量result的结构2调用medfilt1函数将以下代码输入Main函数:double[]t=newdouble[500];double[]x=newdouble[500];//Generateanarraycontaining500elementsRandomrnd=newRandom();for(inti=0;i<500;i++){t[i]=i*Math.PI/250.0;x[i]=100*Math.Sin(i*Math.P7、I/250.0)+rnd.NextDouble()*15;}MWNumericArrayinputArray=newMWNumericArray(x);MWNumericArrayresultArray;SmoothToolClassst=newSmoothToolClass();resultArray=(MWNumericArray)st.MedianFilter(inputArray,30.0);double[,]result=(double[,])resultArray.ToArray();for8、(inti=0;i
6、得到相同结构的输出,即500×1的二维数组。图1调用smooth返回的结果变量result的结构2调用medfilt1函数将以下代码输入Main函数:double[]t=newdouble[500];double[]x=newdouble[500];//Generateanarraycontaining500elementsRandomrnd=newRandom();for(inti=0;i<500;i++){t[i]=i*Math.PI/250.0;x[i]=100*Math.Sin(i*Math.P
7、I/250.0)+rnd.NextDouble()*15;}MWNumericArrayinputArray=newMWNumericArray(x);MWNumericArrayresultArray;SmoothToolClassst=newSmoothToolClass();resultArray=(MWNumericArray)st.MedianFilter(inputArray,30.0);double[,]result=(double[,])resultArray.ToArray();for
8、(inti=0;i
此文档下载收益归作者所有