Java如何呼叫Matlab所提供的函數—以反矩陣運算為例.docVIP

Java如何呼叫Matlab所提供的函數—以反矩陣運算為例.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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; // 把陣列

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档