资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
C#中调用mdtldbdll作曲线拟和2011年06月06日今天是端午节,闲來无事,总结一下前一段时间应用mat1ab的成果。使用环境;VisualStudio2005,MatlabR2010bo二.操作步骤:1、matlab中安装MCR点击MATLAB7toolboxcompilerdeploywin32目录下MCRInstaller。安提示安装。2、安装matlab编译器在matlab命令行输入mbuild-setup,设置编译器,在设置过程中会出现选择编译器的提示,我的电脑安装的是MicrosoftVisualC+2005SP1,因此选MicrosoftVisualC+2005SP1见图nbuild-setupPleasechooseyourcompilerforbuildingstandaloneMAILABapplications:Wouldyoulikembuildtolocateinstalledcompilersy/n9ySelectacompiler:1 Lcc-vin32C2.4.1inC:MATLABrsys-lcc2 MicrosoftVisualC+2005SP1inC:PrograxFiles-MicrosoftVisualStudio80NoneConpiler:2Pleaseverifyyourchoices:Conpiler:MicrosoftVisualC2005SP1Location:C:PrograMFilesxMicrosoftVisualStudio8Axethesecorrecty/n?yIryzngtoupdateoptiorfile:C:Usersvgaos-AppDataRoaMingMathWorksMAILABR2010bcompoptsba*tFroatenplate:C:MAILAB1bmrin32MbuildoptsM5vc8Ocon4jpba*tDone运行deploytool,编译netdll在matlab命令行输入,出现如下窗口*DeploymentProjectNewName:Untitledl.prjLocation:Target:rWindowsStandaloneAppucationC:matlab2010bin參WindowsStandaloneApplicationSConsoleApplicationdCSharedLibraryC+tSharedLibrary岡ExcelAddin品.NE1Assembly2GenericCOMComponent母JavaPaMge在Name中输入你将生成的DLL文件各,Location中输入存入文件路径,在Target中点击下拉框,要发现我们可以将matlab文件处理成那些文件Windowsstandaloneapplication处理windows成独立可运行文件ConsoleApplication控制台可执行文件CSharedLibraryC语言可分享库C+SharedLibraryC+语言可分享库ExcelAdd-inExcel中可调用的库.NETAssembly.NET编译库GenericCOMcomponent通用COM控件JavaPackageJava包在此我们选择.NETAssembly,确认后出现以下窗口4DeploymentToolFileEditProjectDebugDesktopWindowHdp*Suntitled2.prj25暂-4jNewProject.OpenProject.BuildPxkagClassesPlacefunctionsherethatyouwanttoaccessfrom.NETmanagedcode(ipublicmethods).【AddcbsslRenameProjectAddClassSharedResourcesandHelperFilesPlaceimages,datafiles,andGUIs(.figfiles)hereIfreferencedbyanyfunctions.Alsoplacehere: Functionscolledusingeval(anditsvariants) FunctionsnotontheMATLABpath PrivatefunctionsAdd斥s/d;rhetoricsAddMCRSIBuild的PackageHelpication注利LaryC语言ibraryC+*IExcel中可谣”.NET编译丿fcomponen-f通编译前先要设置一下、在上图中点击Settings设置NET,设置如上图,选择microsoftframwork版本时一定要选单前使用版本,不能选default,要不然编译出來的会有一点问题。将AssemblyType设置为Shared点击Close加到编译窗口1_1.4DeploymentToolV03IAddClass中增加invgammaAddfilestest.m文件Test.m文件内容如下%test.mfunctionmn=mvgaJMna(m?n?x?j)功能:对输入m及输出皿初j次多项式拟和,%然后对从拟和曲线上,从输入X上栈相应的值nh=polyfit(n,m,j):%拟和曲线nun=uint8(polyval(nh?x):%多项式求值点击编译文件编译结束后会在testsrc下会产生test,dll,这就是我们需求的1文件4、打开vs2005建立c#项目vstest5、导入matlabdllSvstgtMicrosoftVisualStudioRleEdit7zProjeclBuildDebugDataToolsWindowCommunityHfpDebugAnyCPUG刍习F如丛SopenfikOioglI咻嗚羔4空:SolutionvstestQ.aas3USolutionvstest1prcject)6-肆申S由V0gjt%ldReouildCleanPublishAddAddRfrn_AddWebReference.Vieu*ClasDiagramSetasStlUpProjectDabijgCutFormLesDesignSurtPs,ObjeespacevstestpublicpartialclassForml:FormpublicArrayjiur;publicForMlOInitializeComponent();输入队列intx=0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,255;输出队列inty=34,35,36,37,38,40,43,45,48,52,58,66,74,83,92,105,115,129,149,168,185,198,212,220,223,224,224;/0255x轴队列intp=newint255;for(inti=0;i255;i+)pi=i;intn=6;多项式项数/intm=test.invgmO;/实例化invgmnygaii=newinvguO;(MWNuaericArray)p,MWArrayResOut=null;用于值输岀的Matlab矩阵ResOut=mygamtestfunc(
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号