2011-02-14 47 views
1

我想顯示mat文件的內容以查看所有結果。我知道,我可以加載它,然後雙擊它的內容顯示在工作區,這種情況發生時,墊文件內容很少的信息,但是當我有墊文件內容信息超過13000記錄我無法顯示它。可以請任何人幫我找到任何方式來顯示mat文件作爲表?在matlab中顯示mat文件

謝謝

+3

可能的重複[檢查字段是否存在於Matlab結構中而不加載它](http://stackoverflow.com/questions/4026690/check-if-field-exists-in-matlab-struct-without-loading-it ) – gnovice

+2

不同意gnovice的評論:鏈接只是檢查一個字段是否存在於一個MAT文件中,這似乎是關於加載MAT文件的一個子集,因此可以操縱 – btown

回答

2

您有幾個選項。從清晰的工作區開始,您可以將mat文件加載到工作區中。現在工作區中的任何東西都在mat文件中。您可以使用變量查看器或使用腳本進行分析。

如果您有Simulink工具箱,則可以使用Simulink.saveVars將工作空間的內容保存爲可生成相同內容的人類可讀m-腳本。可惜您需要Simulink來做到這一點,因爲這個功能與Simulink無關。

4

我不知道數據的格式(多維,結構,單元格數組),但是有一個叫做「openvar」的函數,它對於這些東西可能非常有用。

讓我們定義一個大的隨機500x500x10 3D矩陣:

large = rand(500,500,10); 

此變量包含250萬雙,價值觀念和接近佔用的內存20MB。在變量編輯器中雙擊在工作區窗口上打開這個「大」通常(ATLEAST在我的系統)提供以下信息:

 
"Cannot display summaries of variables with more than 524288 elements." 

但你可以使用「openvar」 - 函數打開某些部分:

openvar('large(:,:,1)'); %# pass the argument as a string. 

這將打開中的變量編輯器矩陣的第一「層」(在這種情況下爲500×500矩陣)。如果您需要查看大變量的某些部分,這非常有用。

當然,你總是可以定義包含您的大變量的子集的新變量:

less_large = large(:,:,1); 

...,然後在工作區窗口就可以了變量編輯通過雙擊打開「less_large」 。但是有時候「openvar」方法會更快一些。

+0

感謝回覆,我的數據的格式是數組的結構包含圖像文件名,另一個變量包含數值,如顏色直方圖 – zenab

+0

@zenab:我不知道我完全理解。以兆字節爲單位的文件有多大?你能打開整個文件到工作區嗎?因爲如果沒有,那麼我上面的方法對你來說沒有什麼價值。 –

+0

我將給你以下使用openvar函數的例子:我的mat文件(colHist。mat)這個文件包含數組的結構(col)該數組的結構包含以下字段:Nam(圖像名稱),ColHis(顏色直方圖),首先我加載(colHist.mat),然後我寫:openvar(col .Nam),但是我在matlab工作空間中得到了空的工作表,請幫我解決這個問題 – zenab

1

加載數據後如何使用whos來顯示當前工作空間中的變量?請注意,在顯示它們之前,您可能需要清除所有其他變量。

相關問題