① matlab如何調用dll文件
在的Help中搜索"Calling Functions in Shared Libraries"即可看到關於此內容的幫助文檔。
下面以一個簡單的小例子演示Matlab調用DLL的過程:
1、編譯器准備
在Matlab的命令窗口輸入:mex -setup
選擇你的編譯器,我的是:
[2] Microsoft Visual C++ 2008 SP1 in c:\Program Files\Microsoft Visual Studio 9.0
2、編寫你自己的DLL
在Visual Studio 2008中新建一個Win32的Dll工程,不妨設名字為MatlabDllTest
編輯MatlabDllTest.cpp:
#include "MatlabDllTest.h"
double add(double x, double y)
{
return (x+y);
}
編輯MatlabDllTest.h:
#ifndef MATLABDLLTEST_H
#define MATLABDLLTEST_H
#ifdef __cplusplus
extern "C"
{
#endif
__declspec(dllexport) double add(double x, double y);
#ifdef __cplusplus
}
#endif
#endif
3、載入DLL:把編譯連接之後產生的MatlabDllTest.dll和MatlabDllTest.h文件拷貝到Matlab的當前工作目錄下,輸入
loadlibrary('MatlabDllTest','MatlabDllTest.h');
(一定要有這步,如果dll不成功,會顯示錯誤原因)
4、查看DLL中導出的函數
libfunctions MatlabDllTest -full
-full選項會列出導出函數的詳細輸入和輸出參數,這是輸出信息如下:
Functions in library MatlabDllTest:
double add(double, double)
5、調用函數
calllib('MatlabDllTest', 'add', 1.3, 4.6)
此時就會輸出正確的結果
ans =
5.9000
總結:這個例子比較簡單,只是為了演示整個過程,如果真的用到了Matlab來調用外部DLL的這種方式的話,就要注意DLL工程要符合Matlab的要求,詳細信息請自己查看Matlab的幫助文件。
② MATLAB中的dll文件是什麼意思啊新手求指點
通俗一點啊,首先,這是實現C#和matlab混合編程的一種常用方式,matlab工具中有很強大的版數值運算和分析功權能,而C#高級語言具有界面編程和對象編程的很多優點,為了取二者優點,C#調用matlab函數文件編譯成的dll文件提供了一種方法。
此種方法必須在matlab中寫好function文件,繼而設置好編譯器,將function的.m文件編譯成dll,即動態鏈接庫文件供C#調用;C# 語言中需要導入該dll文件作為資源文件,並且在調用的地方處理好參數的轉換和傳入傳出,完成函數功能。