日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#,xp系统,Matlab6.5

發布時間:2023/11/30 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#,xp系统,Matlab6.5 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編譯環境:c#,xp系統,Matlab6.5

新建一個窗體項目,添加matlab引用。

然后試了四種方式調用matlab:

第一種

?

view plaincopy to clipboardprint?
  • MLApp.MLAppClass?matlab?=?new?MLApp.MLAppClass();??
  • matlab.Visible?=?1;??
  • matlab.Execute("figure(1)");??
  • ?

    第二種

    ?

    view plaincopy to clipboardprint?
  • MLApp.DIMLApp?matlab?=?null;??
  • Type?matlabAppType?=?System.Type.GetTypeFromProgID("Matlab.Application");??
  • matlab?=?System.Activator.CreateInstance(matlabAppType)?as?MLApp.DIMLApp;??
  • matlab.Visible?=?1;??
  • matlab.Execute("figure(2)");??
  • ?

    第三種

    ?

    view plaincopy to clipboardprint?
  • MLApp.MLApp?matlab?=?null;??
  • Type?matlabAppType?=?System.Type.GetTypeFromProgID("Matlab.Application");??
  • matlab?=?System.Activator.CreateInstance(matlabAppType)?as?MLApp.MLApp;??
  • matlab.Visible?=?1;??
  • matlab.Execute("figure(3)");??
  • ?

    第四種

    ?

    + expand sourceview plaincopy to clipboardprint? ?

    四種情況在本機上均可啟動matlab

    然后把生成的程序copy到(包括Interop.MLApp.dll)

    1,xp系統,matlab2009a

    發現第一和第四種方式運行會報錯,第二和第三種可以啟動matlab。

    這MLApp.MLAppClass,?MLApp.DIMLApp,MLApp.MLApp三者的區別我不曉得,杯具。

    2,win7系統,matlab2009a

    結果同1。

    編譯環境:c#,win7系統,Matlab2009

    四種調用方式不變,在本機上均可運行

    然后把生成的程序copy到(包括Interop.MLApp.dll)

    ?

    1,xp系統,matlab6.5

    發現第一和第四種方式運行會報錯,第二和第三種可以啟動matlab。

    2,xp系統,matlab2009a

    四種情況在本機上均可啟動matlab

    結論:為了避免matlab版本問題,最好使用第二和第三種方法。


    C#調用Matlab 引擎


    ??字號:?訂閱

    在C#中調用Matlab, 需要先配置一下Matlab編譯器, 然后在VS里面引用Matlab組件
    具體操作如下:

    在VS里面引用Matlab組件
    引用 ??.Net MWArray API (不是必須)
    引用Matlab Application Type Library


    using MathWorks;
    using MathWorks.MATLAB;
    using MathWorks.MATLAB.NET.Arrays;
    using MathWorks.MATLAB.NET.Utility;
    using MLApp;
    private void button1_Click(object sender, EventArgs e)
    ????{
    ????????MLApp.MLAppClass matlab = new MLApp.MLAppClass();
    ????????string command;
    ????????command = "t=2:0.2:4*pi;y=sin(t);plot(t,y)";
    ??????
    ????????matlab.Visible = 1; ????????
    ????????matlab.Execute(command); ????// 執行Matlab命令
    ????????command = @"print(gcf, ??'-djpeg', ??'c:\Test1')"; ????// 保存圖片
    ????????matlab.Execute(command);
    ????????matlab.Quit();
    ????????matlab = null;
    ????????pictureBox1.Image = Image.FromFile(@"c:\Test1.jpg"); ??
    ????}


    以上網上轉載的用c#調用matlab的另外一種方法,為什么用lm算法訓練BP網絡的代碼運行時就不能跳出仿真圖,換其他函數就都可以。各位高手幫忙指點下迷津。
    private void Form1_Load(object sender, EventArgs e)
    ????{
    ????????MLAppClass matlab = new MLAppClass();
    ????????string command = "P=[21 23;12 43;23 15;]" +
    ????????"I=[12;23;45];" +
    ????????"P=P';" +
    ????????"I=I';" +
    ????????"save data P I;" +
    ????????"[Pn,minp,maxp,In,mint,maxt] = premnmx(P,I)" +
    ????
    ????????"net=newff(minmax(Pn),[10,1],{'tansig', 'purelin'},'trainbr');" +
    ??????
    ????????"net=init(net)" +
    ????????"net.trainParam.show=100; %兩次顯示之間的訓練步數" +
    ????????"net.trainParam.lr=0.3;%學習速率" +
    ????????"net.trainParam.epochs=10000; %訓練次數" +
    ????????"net.trainParam.goal=0.000001;%訓練目標" +
    ????????"[net,tr]=train(net,Pn,In);" +
    ????????"Inputweights=net.IW{1,1}" +
    ????????"Inputbias=net.b{1}" +
    ????????"Layerweights=net.LW {2,1}" +
    ????????"Layerbias=net.b{2}"+
    ??????????"figure(gcf)";

    ????????matlab.Visible = 1;
    ????????matlab.Execute(command);
    ????????matlab.Quit();
    ????????matlab = null;
    ????????}
    ??}

    總結

    以上是生活随笔為你收集整理的c#,xp系统,Matlab6.5的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。