[問題] Matlab與C的資料溝通 已回收

看板MATLAB作者 (馬克士威爾方程式)時間15年前 (2010/12/17 11:29), 編輯推噓3(3012)
留言15則, 3人參與, 最新討論串1/1
各位先進好, 我最近用BCB收集實驗數據,再交由matlab來做資料處理,得到的參數想丟回給C來用, 但是一直找不到適當的方法,資料溝通不必很即時,不知版上的大大有無遇過這些問題? 我先說一下我的方法 1. BCB=>matlab 其實這邊蠻容易的,我把收集到的資訊用fprintf存成文字檔,然後matlab那邊再用 load指令,把這些文字檔轉成array來做off-line分析,這裡沒有問題。 2. matlab=>BCB matlab經過分析,把一些算出來的模型參數(我存成一個三維array)要丟回給C語言用, 我曾想過仍用matlab中的fprintf把值存進去,再用C來開,但是這樣還要在C中寫很多 檔案處理的判斷程式,似乎不大有效率,不知是否有辦法把matlab中的array存成檔案, C可以簡易的使用他呢? 我之前曾經在C語言中用fwrite 與 fread來記錄struct中的資訊,而這兩個指令我看 matlab中也有,請問有人使用過這個技巧來互通過嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.150.28 ※ 編輯: MaxwellsEQ 來自: 140.113.150.28 (12/17 11:29)

12/17 12:43, , 1F
MEX一個C的function,再用Matlab傳值給它,存struct?
12/17 12:43, 1F

12/17 12:44, , 2F
順帶一提... Matlab也有struct
12/17 12:44, 2F

12/17 12:44, , 3F
不過不知道可不可以直接以binary存檔就是了
12/17 12:44, 3F

12/17 16:01, , 4F
因為我想做的事情比較單純,所以matlab只是單純的輔助
12/17 16:01, 4F

12/17 16:02, , 5F
off-line運算而已,所以跑C時MATLAB不會打開
12/17 16:02, 5F

12/17 16:51, , 6F
我一思是說寫一個fwrite、fread的C Function
12/17 16:51, 6F

12/17 16:52, , 7F
再將之MEX到Matlab 讓Matlab可以呼叫並把值傳給他
12/17 16:52, 7F

12/17 18:06, , 8F
感謝樓上的回答,雖然我看不太懂XD,不過我會去找相關
12/17 18:06, 8F

12/17 18:06, , 9F
資料~謝謝您
12/17 18:06, 9F

12/18 02:12, , 10F
system?
12/18 02:12, 10F

12/18 17:12, , 11F
我試過了...C跟Matlab的存取順序不同,不過調一下就好
12/18 17:12, 11F

12/18 17:13, , 12F
我弄了一個測試程式 http://codepad.org/0WMnFAjP
12/18 17:13, 12F

12/18 17:14, , 13F
我是覺得還蠻簡單的啦XD 這樣就不用用到mex了(麻煩)
12/18 17:14, 13F

12/18 23:08, , 14F
感謝樓上大大,我研究一下~XDD~
12/18 23:08, 14F

12/19 18:46, , 15F
謝謝b大,我成功囉~感謝您幫了大忙
12/19 18:46, 15F
文章代碼(AID): #1D2ja4HW (MATLAB)