- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++ / Java 如何呼叫 Matlab 所提供的函數—以反矩陣Inverse運算為例 井民全
在 Matlab 中, 要計算一個矩陣的反矩陣是相當簡單的. 只要使用 inv 函數即可達到要求.
如何在 C++ 程式碼中,呼叫Matlab 函式?
編譯 (使用mbuild.exe 和 Microsoft Visual C++ 6.0)
程式寫好了,現在的問題是如何編譯? 最簡單的方法就是使用Matlab 所提供的 mbulid.exe 這個工具會自動的將必要的一些 library 與 路徑全部設定好,只要下達一個指令,它就會幫你建立一個可執行檔.
使用的範例如下
如果你的應用很簡單,那使用 mbulid.exe 這個工具就綽綽有餘了.
MSVC 的設定方式
那麼如果我使用的是 MSVC (Microsoft Visual C++) 整合式開發環境,那要如何設定 Library 與 Include Path 呢?
設定的方式如下:
Step 1: 設定環境變數MATLAB 指定MATLAB 安裝目錄
Step 2: 在 MSVC 中設定必要的編譯參數
設定 C++ 的部分
A. 加入變數的定義: IBMPC,MSVC,MSWIND,__STDC__
B. 加入標頭檔所在路徑:
C. Code Generation 選擇 Multithreaded DLL
設定 Link 的部分
加入相關的MATLAB Libraries
B. 設定Library 所在的路徑
測試一下
牛刀小試
我們來試試反矩陣的計算. 由 MATLAB C++ MATH LIBRARY API 中得知, 我們可以使用inv 函式來計算一個矩陣的反矩陣.
Inv 函式的原型如下:
計算反矩陣的程式碼如下:
C++已經是一個非常普遍的電腦程式語言,既然已經有 Matlab 等嚴謹的數學函式庫有人幫我們完成了,為了節省不必要的開發以及除錯的時間.
但是如果我使用的是 Java 程式語言, 那麼我要如何利用 Matlab 幫我完成這件事情呢 ? 這裡提供的策略是利用 Matlab C/C++ Math Libries透過 Java 所提供的呼叫 C++ 介面 (JNI) 幫我們解決計算反矩陣問題,. 我們可以完成
重要的程式範例:
matlab安裝目錄\extern\examples\cppmath
參考資料:
Using the C++ Math Library /access/helpdesk_r12p1/help/toolbox/mathlib/cppmathug/cppmathug.shtml
MATLAB Compiler /access/helpdesk/help/toolbox/compiler/compiler.shtml
MATLAB C++ Math Library 2.1 Reference: /access/helpdesk/help/pdf_doc/cppmath/cppmath_ref2b.pdf
1
計算反矩陣的範例
A=[1,2,3;4,5,6;7,8,0]
A =
1 2 3
4 5 6
7 8 0
invA=inv(A)
invA =
-1.7778 0.8889 -0.1111
1.5556 -0.7778 0.2222
-0.1111 0.2222 -0.1111
A 的反矩陣
我們希望能建立一個如右圖所示陣列 A,要特別注意的是Matlab陣列資料是以 Column Major 的方式存放,所以要形成A陣列,我們的資料必須以下列排列,{1,4,7,2,5,8,3,6,0}. 下面是建立陣列 A 的C++ 程式碼範例
A =
1 2 3
4 5 6
7 8 0
C:mbuild 你的C++原始檔.cpp
建立陣列 A
#include matlab.hpp
void main(){
int Height=3,Width=3;
double data[] = {1,4,7,2,5,8,3,6,0}; // 配置資料
mwArray A(Height,Width, data); // 建立Matlab 陣列
cout A endl; // 把陣列
您可能关注的文档
- F-P腔的工作原理及调节-山西大学.ppt
- FAAConferencePaperOutline-FederalAviation.doc
- Farnsworth-Munsell100-HueTest-RochesterInstituteof.doc
- FDFEnergyConference.ppt
- FIAT_COUPE_PARTS_LIST_2012.doc-FCCuk.org.doc
- Fibre-opticprobehydrophoneforultrasonicandshock-wave.PDF
- FightingintheTrenches.ppt.ppt
- Filed41212P.v.ClevelandCA41NOTTOBE.doc
- FilesFile八年级预习题纲.doc-福州华南实验中学.doc
- filmlocationagreement-LegalServicesOffice-University.doc
最近下载
- DB63∕T 2387-2024 公路路基涎流冰防治技术指南.pdf
- 2025人教版英语四年级上册Unit 1 Helping at home单元测试试卷.pdf VIP
- 等比数列知识点总结与典型例题+答案.docx VIP
- 1、2024广西专业技术人员继续教育公需科目参考答案(98分).pdf VIP
- 配电运维题库题库(392道).docx VIP
- 中华优秀传统文化融入初中英语教学的路径探索.docx VIP
- 2025年生产安全应急演练方案(精选5篇).pdf VIP
- 2025安徽合肥高新区管委会直属国有企业公开招聘31人笔试历年参考题库附带答案详解.docx
- SY∕T 5329-2022 碎屑岩油藏注水水质指标技术要求及分析方法.pdf
- 电线、电缆载流量对照表.pdf VIP
文档评论(0)