###### Metlab Code ######
###=== 建立一個 matlab 的檔案,命名為test2
###=== 程式碼如下
function [result] =test3(a,b,c,d)
result = a+b*c-d;
save('D:\MATLAB6p5\work');
return
###=== 在 Matlab 主程式中,選擇..
###=== Start --> Matlab --> Matlab COM Builder --> Matlab COM Builder
###=== 建立 New Project 取名為 test1
###=== Component Name 設為 testAAA
###=== 將 Build debug version 的選項打勾
###=== 執行Build產生 DLL 檔案
###=== 將DLL檔COPY到 C:\Windows\System32 裡面
################################
########### tcl 載入 DLL ###############
package require tcom
::tcom::import test1_1_0.dll
set comUtil [::test1::testAAA]
### 這裡的[::test1::testAAA]
### test1是Matlab 的COM Builder檔名
### testAAA是Matlab 的Component Name,也就是 Class Name
###===--- 執行 DLL
### a 矩陣內容為
### { 1.0 2.0 }
### { 3.0 4.0 }
set a [list [list [expr double(1)] [expr double(2)]] [list [expr double(3)] [expr double(4)]] ]
### b 矩陣內容為
### { 3.0 2.0 }
### { 4.0 5.0 }
set b [list [list [expr double(3)] [expr double(2)]] [list [expr double(4)] [expr double(5)]] ]
### c 矩陣內容為
### { 1.0 2.0 }
### { 3.0 4.0 }
set c [list [list [expr double(1)] [expr double(2)]] [list [expr double(3)] [expr double(4)]] ]
### d 矩陣內容為
### { 4.0 5.0 }
### { 6.0 7.0 }
set d [list [list [expr double(4)] [expr double(5)]] [list [expr double(6)] [expr double(7)]] ]
set retx $comUtil test2 1 retx $a $b $c $d
### 這裡的 $comUtil test2 ....
### test2 是Matlab的M File Name,也就是存放程式碼的檔名
puts $retx
### 上面的$comUtil test2 1 retx.. "1" 表示傳回一個值 由 retx 變數接
### 傳回 {6.0 11.0} {16.0 25.0}
沒有留言:
張貼留言