2011-11-20 36 views
0

在m文件中使用單元陣列時遇到問題。我使用here中給出的函數創建了許多單元陣列。我在這些數組中存儲的數據是從文本文件中讀取的數值(在將它們放入數組之前,我將它們轉換爲字符串)。的問題是,一些數字似乎沒有在正確的陣列被strored:在Matlab中存儲單元陣列中的整數

的文本文件包含:

1976787196 
8 
1976945848 
8 
1977105448 
8 

以及單元陣列的內容,其中上面是存儲有以下內容:

Columns 1 through 3 

       1976787196   681405151445000    1976945848 

    Columns 4 through 6 

      685476780441608    1977105448   685476780441608 

正如你所看到的,而不是stroring 8,我得到一個非常大的整數。

實際上,我希望我創建的單元陣列的所有內容都只包含32位整數。我能否以某種方式指定該要求?提前致謝!

回答

0

這取決於你如何從文本文件中讀取數據。嘗試使用TEXTSCAN函數。格式字符串'%u32'指定要讀取無符號的32位整數數據。

filename = 'test.txt'; 
fid = fopen(filename,'r'); 
x = textscan(fid,'%u32','delimiter','\t','CollectOutput',1); 
x = x{1}; 
fclose(fid); 
+0

我將文本文件讀取爲一個字符串,但是之後我將每個字符串數字轉換爲str2double的兩倍,然後將其存儲到我的單元格數組中。我試過不使用單元陣列,而是使用常規(多方向)矩陣,它將一切都完美存儲,但是,我讀到單元陣列在內存使用方面效率更高,這就是爲什麼我更願意使用它們而不是常規矩陣。我可能需要閱讀該文件爲32位uint數據,我猜...感謝您的幫助。 – limp