在VC中使用MATLAB C++函数库
生活随笔
收集整理的這篇文章主要介紹了
在VC中使用MATLAB C++函数库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://Tech.16C.Cn
在VC中使用MATLAB C/C++函數庫 MATLAB廣泛應用于線性代數、自動控制理論、數理統計、數字信號處理、時間序列分析、動態系統仿真等領域。因此如果在VC中對MATLAB進行調用將大大減少編程的工作量、保證程序的準確性,并且繼承了VC++強大的功能,提高開發效率,本文將介紹了在VC中使用MATLAB函數庫的具體步驟: 在VC中建立一個
在VC中使用MATLAB C/C++函數庫 MATLAB廣泛應用于線性代數、自動控制理論、數理統計、數字信號處理、時間序列分析、動態系統仿真等領域。因此如果在VC中對MATLAB進行調用將大大減少編程的工作量、保證程序的準確性,并且繼承了VC++強大的功能,提高開發效率,本文將介紹了在VC中使用MATLAB函數庫的具體步驟:
在VC中建立一個項目后:
1.設置:
添加路徑:
在project-settings-c/C++-category:-preprocessor-Additional include Directories:欄目中添加:
D:\MATLAB6P1\EXTERN\INCLUDE,
D:\MATLAB6P1\EXTERN\INCLUDE\CPP,
D:\MATLAB6P1\EXTERN\LIB lib
在project-settings-c/C++-category:-preprocessor-preprocessor definitions: 欄目中添加:
MSVC,MSWIND
在project-settings-Link-Category-Input-Ignore libraries:欄目中添加:msvcrt.lib
2. 添加頭文件:(假設matlab文件為x.m)
#include "matlab.hpp"
#include x.hpp //如果有從.m編譯成.cpp的文件x.hpp 和x.cpp;
在x.cpp中添加#include "StdAfx.h"
3.在matlab中的編譯方法:
用mcc命令轉化為c/c++代碼,命令行參數如下:
生成c文件: mcc –t –L C x.m
生成c++文件: mcc –t –L Cpp x.m
生成動態鏈接庫函數: mcc –t –W lib:y –T link.lib x.m(y為生成的鏈接文件名)
4.導入鏈接庫:
#pragma comment (lib, "libmatlb.lib")
#pragma comment (lib, "libmx.lib")
#pragma comment (lib, "libmatpm.lib") // c++ maths library
5.參考代碼如下:
double d[] = { 1, 2, 3, 4 };
mwArray A(2, 2, d);
mwArray arrVal,arrVec;
arrVec = eig(&arrVal,A);
double* a = new double[4];
for (int i=0; i < 4; i++) { a[i] = *(mxGetPr(arrVal.GetData())+i); //正序 b[i] = *(mxGetPr(arrVec.GetData())+i);//逆序 }
double* b = new double[4];
總結
以上是生活随笔為你收集整理的在VC中使用MATLAB C++函数库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab元胞数组操作
- 下一篇: C++矩阵优化算法