線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1906
推到 Plurk!
推到 Facebook!

關於如何將BCB與MATLAB做連結

尚未結案
barryHsu
一般會員


發表:55
回覆:49
積分:20
註冊:2005-01-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-25 13:21:42 IP:163.18.xxx.xxx 未訂閱
在MATLAB方面,我已經將介面寫好了,但是不知道如何使用BCB與MATLAB做連結,我有事著IMPORT MATLAB的.OCX檔近來使用,但是無法作動,不知道有沒有好心的大大能夠幫我解決這個問題,這問題已經困擾我許久的時間了,謝謝....
wyen
一般會員


發表:0
回覆:5
積分:1
註冊:2004-12-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-27 20:06:40 IP:220.131.xxx.xxx 未訂閱
是BCB呼叫matlab嗎? 如果是的話可以這樣做 1.先將matlab編成exe檔做法可以參考 http://ecaaser3.ecaa.ntu.edu.tw/weifang/BIO-ctrl/compiler/standalone.htm 2.接著在bcb裡用WinExec()就可以了 如 WinExec("matlabfilename.exe",NULL);
barryHsu
一般會員


發表:55
回覆:49
積分:20
註冊:2005-01-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-28 15:21:49 IP:163.18.xxx.xxx 未訂閱
wyen大大您好: 假如我要做一各BUTTON做連結是不是這樣ㄋ void __fastcall TForm1::MATLABClick(TObject *Sender) { WinExec("systemcontrol.exe",NULL); } 因為我有事過這樣無法將MATLAB叫出來,因為我現在已經將MATLAB做成.exe檔。
wyen
一般會員


發表:0
回覆:5
積分:1
註冊:2004-12-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-30 20:58:32 IP:220.131.xxx.xxx 未訂閱
請問barryHsu大大; 無法執行時有出現什麼訊息嗎?
barryHsu
一般會員


發表:55
回覆:49
積分:20
註冊:2005-01-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-31 21:33:25 IP:163.18.xxx.xxx 未訂閱
Hello wyen您好: 假如是直接執行systemcontrol.exe的話可以直接呼叫我做的介面出來,但是假如是用之前的方法做的話會出現一各命令字元的對話框,但是裡面有寫英文字,因為速度過快我看布泰到裡面完全的意義,但是我有隱約的猜到好像是無法開啟的訊號。
wyen
一般會員


發表:0
回覆:5
積分:1
註冊:2004-12-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-02-01 08:17:27 IP:220.131.xxx.xxx 未訂閱
Hello barryHsu; http://ecaaser3.ecaa.ntu.edu.tw/weifang/BIO-ctrl/compiler/standalone.htm 這裡所寫的例子也會出現相同的問題嗎? 如果是的話,我猜想可能是系統path的問題了< > > 當初也是這樣的情況、後來換另一台電腦居然能跑< > 在回過頭找缺的
barryHsu
一般會員


發表:55
回覆:49
積分:20
註冊:2005-01-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-02-01 12:49:53 IP:163.18.xxx.xxx 未訂閱
Hello wyen: 我就是用這種方法將MATLAB做組譯的,再由BCB做連結的  
 
void __fastcall TForm1::Button1Click(TObject *Sender) { int result; result = spawnl(P_NOWAIT,"C:\\程式介面\\systemcontrol.exe", "C:\\¤¶­±µ{¦¡\\systemcontrol.exe", NULL); if (result == -1) { ShowMessage("錯誤請查看C:\介面程式\目錄下是否有systemcontrol.exe'!"); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Application->Terminate(); //介面程式} //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { ShellExecute(NULL,NULL,"c://介面程式//systemcontrol.exe",NULL,NULL,SW_SHOW);; } //--------------------------------------------------------------------------- 對了我想要問您,BCB可不可以讀中文的PATH???
barryHsu
一般會員


發表:55
回覆:49
積分:20
註冊:2005-01-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-02-01 12:55:22 IP:163.18.xxx.xxx 未訂閱
Hello wyen: 我就是用這種方法做MATLAB的組譯的,  
 
void __fastcall TForm1::Button1Click(TObject *Sender) { int result; result = spawnl(P_NOWAIT,"C:\\介面程式\\systemcontrol.exe", "C:\\介面程式\\systemcontrol.exe", NULL); if (result == -1) { ShowMessage("錯誤請查看C:\介面程式\目錄下是否有systemcontrol.exe'!"); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Application->Terminate(); } --------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { ShellExecute(NULL,NULL,"c://介面程式//systemcontrol.exe",NULL,NULL,SW_SHOW);; } //--------------------------------------------------------------------------- 對了我想請問你,BCB是否可以讀中文的PATH
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-02-01 13:22:46 IP:210.68.xxx.xxx 未訂閱
 
ShellExecute(NULL,NULL,"c://介面程式//systemcontrol.exe",NULL,NULL,SW_SHOW);    應該為
ShellExecute(NULL,NULL,"c:\\介面程式\\systemcontrol.exe",NULL,NULL,SW_SHOW);;
barryHsu
一般會員


發表:55
回覆:49
積分:20
註冊:2005-01-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-02-01 13:43:29 IP:163.18.xxx.xxx 未訂閱
Hello taishyang: 我有更改過了,但是還是無法將檔案做連結,可否幫忙ㄋ...謝謝..
wyen
一般會員


發表:0
回覆:5
積分:1
註冊:2004-12-21

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-02-01 15:58:19 IP:220.131.xxx.xxx 未訂閱
Hello; 看了你的程式應該是matlab這邊會產生一個值給bcb吧? 依照以往的經驗matlab的運算時間會比較久, 所以在兩者之間要做資料傳遞,最好透過中間檔像temp.txt。 在matlab這邊運算完後產生的值存到temp.txt, 然後bcb在去開啟temp.txt把資料讀進來。 前面提到matlab的運算時間會比較久, 所以bcb這邊要用Sleep(1000);留一些時間等待matlab完成動作在去開啟資料 像 [code] // Run Matlab Code WinExec("fuzzytest.exe",NULL); Sleep(1000); …bcb開檔 [code] 這樣,其中的1000是要自己去試 這個值在我的環境下能讓fuzzytest.exe運算完成
barryHsu
一般會員


發表:55
回覆:49
積分:20
註冊:2005-01-25

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-02-01 16:31:00 IP:163.18.xxx.xxx 未訂閱
Hello wyen: 謝謝你囉....我找出來原因了,原來我沒有把兩各東西放在一個目錄下...
系統時間:2024-05-19 20:35:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!