VS 2008 C#MATLAB 2009 b生成DLLを呼び出す
6977 ワード
http://www.cnblogs.com/horizon_king/archive/2011/01/21/1941220.html
開発環境:VS 2005+Matlab 2009 a
1、簡単なものを作成する.mファイル
Matlab 2009 aを開き、新規作成する.mファイル、次のコードを入力します.
function result=twice(inputvar);result=2*inputvar;
コードをtwiceとして保存します.mファイル、図に示すように.
2.Matlab DeployToolを用いる生成する.Netコンポーネント
Matlab 2009 aのCommand Windowにdeploytoolを入力し、図に示すように車に戻ります.
図に示すようにMatlabのDeployToolを開くことができます.
DeployToolフォームで、「新規」ボタンをクリックして、図のように「新規プロジェクト」ダイアログ・ボックスを開きます.
左のリストからMATLAB Builder NEを選択し、右のリストから選択する.NET Component、このプロジェクトをtwiceと名付けました.prj、OKをクリックすると、図に示すようにプロジェクト設定画面に入ります.
Twiceフォルダに先ほど作成したものを追加します.mファイル、図に示すように.
コンパイルボタンをクリックするか、ショートカットキーCtrl+Bを使用してプロジェクトをコンパイルします.コンパイル完了後のメインウィンドウを図に示します.
3、図に示すようにテスト用のWindowsアプリケーションを作成し、MatlabTestと命名する.
4、対MWArrayを追加する.dllの参照
MWArray.dllは一般的に[Matlabインストール場所]R 2009 atoolboxdotnetbuilderbinwin 32v 2に位置する.0フォルダで、Matlab 2009 a対応のMWArrayに気づきました.dllは2.9.バージョン0.0.Matlabバージョンのアップグレードをしていて頭が痛いのがこのdllです.
バージョンアップグレードは、以前に生成されたdllを再生成する必要があることを意味します.バージョンアップの問題については、後述のブログで詳しく説明します.
MWArrayを追加した理由dllは、このようなハイブリッドプログラミング方式の下で、私たちはよく
using MathWorks.MATLAB.NET.Arrays;using MathWorks.MATLAB.NET.Utility;
5.Matlabに対して生成するtwiceを追加する.dllの参照.
6、フォーム内の対応するコンポーネントを追加します.
Labelコントロールを追加し、Textプロパティを「計算結果」に変更します.
計算結果を表示するLabelコントロールを追加します.
計算方法を実行するButtonコントロールを追加します.
設計されたForm 1フォームを図に示します.
7、相応のバックグラウンドコードを作成する.
8、結果の実行と表示
コードに変数iを入力して5を割り当てると、Matlab計算が呼び出され、計算結果10が順調に返されることがわかります.
開発環境:VS 2005+Matlab 2009 a
1、簡単なものを作成する.mファイル
Matlab 2009 aを開き、新規作成する.mファイル、次のコードを入力します.
function result=twice(inputvar);result=2*inputvar;
コードをtwiceとして保存します.mファイル、図に示すように.
2.Matlab DeployToolを用いる生成する.Netコンポーネント
Matlab 2009 aのCommand Windowにdeploytoolを入力し、図に示すように車に戻ります.
図に示すようにMatlabのDeployToolを開くことができます.
DeployToolフォームで、「新規」ボタンをクリックして、図のように「新規プロジェクト」ダイアログ・ボックスを開きます.
左のリストからMATLAB Builder NEを選択し、右のリストから選択する.NET Component、このプロジェクトをtwiceと名付けました.prj、OKをクリックすると、図に示すようにプロジェクト設定画面に入ります.
Twiceフォルダに先ほど作成したものを追加します.mファイル、図に示すように.
コンパイルボタンをクリックするか、ショートカットキーCtrl+Bを使用してプロジェクトをコンパイルします.コンパイル完了後のメインウィンドウを図に示します.
3、図に示すようにテスト用のWindowsアプリケーションを作成し、MatlabTestと命名する.
4、対MWArrayを追加する.dllの参照
MWArray.dllは一般的に[Matlabインストール場所]R 2009 atoolboxdotnetbuilderbinwin 32v 2に位置する.0フォルダで、Matlab 2009 a対応のMWArrayに気づきました.dllは2.9.バージョン0.0.Matlabバージョンのアップグレードをしていて頭が痛いのがこのdllです.
バージョンアップグレードは、以前に生成されたdllを再生成する必要があることを意味します.バージョンアップの問題については、後述のブログで詳しく説明します.
MWArrayを追加した理由dllは、このようなハイブリッドプログラミング方式の下で、私たちはよく
using MathWorks.MATLAB.NET.Arrays;using MathWorks.MATLAB.NET.Utility;
5.Matlabに対して生成するtwiceを追加する.dllの参照.
6、フォーム内の対応するコンポーネントを追加します.
Labelコントロールを追加し、Textプロパティを「計算結果」に変更します.
計算結果を表示するLabelコントロールを追加します.
計算方法を実行するButtonコントロールを追加します.
設計されたForm 1フォームを図に示します.
7、相応のバックグラウンドコードを作成する.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MathWorks.MATLAB.NET.Arrays;
using twice;
namespace MatlabTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int i = 5;
Twice c = new Twice();
MWArray result = c.twice((MWArray)i);
this.label2.Text = result.ToString();
}
}
}
8、結果の実行と表示
コードに変数iを入力して5を割り当てると、Matlab計算が呼び出され、計算結果10が順調に返されることがわかります.