2012-02-18 218 views
1

在C++中,我將數據寫入二進制文件。我的數據是這樣的:float data[a][b](這是C++)。現在,我只想從Matlab讀取這個二進制文件(當然,我在matlab中很新),以獲得A數組(A = data[a][b])。我搜索在谷歌的許多解決方案,例如:在MatLab中讀取二進制文件

frid = fopen('data.bin', 'rb'); 
A = fread(fid,count,type) 
... 

然而,也許是因爲我是新的,這些解決方案並沒有爲我工作!

任何人都可以給我一個建議來閱讀這些數據嗎?歡迎任何答案!謝謝!

回答

1

你在正確的軌道上。查看fread函數的文檔(谷歌「matlab fread」)。 fread需要文件指針(「frid」),要讀取的項目數量和類型。你必須看到你的數據是什麼二進制類型。所以它看起來像這樣:

A = fread(frid, 100, 'real*4'); 

其中100是要讀取的元素的數量。

0

什麼是您的數據的擴展?如果它在* .txt文件中,則可以通過打開它

data = textread('myfile.txt','%f');

http://www.mathworks.com/help/techdoc/ref/textread.html更多的幫助...

+0

這個問題似乎很清楚,數據是「在二進制文件」。文件擴展名與'textread'是否可以使用無關,只有格式確定。 'textread'對二進制格式沒有幫助。 – 2012-02-19 01:38:55

1

你幾乎有正確的答案。對於你的情況,你需要

fid = fopen('data.txt','rb'); 
A = fread(fid,[rows cols],'float'); 

我假設,雖然你寫「的data.txt」爲文件名,文件實際上不是一個文本文件。您可能需要轉置A才能獲得預期的佈局,具體取決於您最初編寫數據的方式。

+0

謝謝!這個對我有用! – 2012-02-19 03:13:58