2012-06-12 438 views
3

我有一個Matlab函數,該函數創建一個包含矩陣的單元陣列。 它看起來像這樣:將陣列保存到磁盤

>> ind 

ind = 

    [10x3 double] 
    [10x11 double] 
    [ 1x11 double] 

>> ind{1} 

ans = 

    -0.0407 0.1806 0.3175 
    -0.1630 -0.0477 0.3487 
    -0.1704 -0.0903 0.2375 
    0.4861 -0.0547 0.3547 
    0.4440 0.1793 0.3329 
    -0.3888 -0.0768 -0.3908 
    -0.0429 0.2418 0.6098 
    0.0263 -0.3948 -0.2316 
    0.3766 0.5255 -0.1580 
    -0.4005 -0.2788 -0.4579 

我希望能夠到這個單元陣列保存到一個文件,之後加載它。

這是最快的方法嗎? 有沒有辦法避免手工操作?

+0

編碼它的最快方法是使用保存和加載命令。或者你在尋找更快的執行時間? – mars

+0

@mars:代碼最快的方法。 '保存文件名var;'做了訣竅。謝謝。 – Macarse

回答

6

一般的解決方法很簡單:

myvar = ind{1}; 
save myfilename myvar; 
load myfilename; 

如果沒有指定變量,save/load處理工作區/文件中的所有變量。您可以保存/載入多個特定的變量:

save myfilename; 
save myfilename myvar1; 
save myfilename myvar2; 
save myfilename myvar1 myvar2; 

load myfilename; 
load myfilename myvar1; 
load myfilename myvar2; 
load myfilename myvar1 myvar2; 

由於在文件中變量的命名所以被檢索出的順序,你不能保存一個表達式的結果,但必須通過一個變量(如答案一樣)。

+0

這完美。我在等待的10分鐘的時間來接受一個答案。 – Macarse

4

我不知道內置函數save是否是最快的方法,但爲什麼不使用它直到獲得更好的建議?

+0

我不知道我可以用'save'保存一個var。對不起,我仍然是一個'Matlab'新手:( – Macarse

+3

沒有後顧之憂,我們所有人都必須學會在某種程度上有時。 –

1

也可以取決於要保存到的文件類型。如果您想將其保存爲.xls(Excel)文件,則可以使用xlswrite()函數。從文檔拉爲xlswrite()函數如下:

xlswrite(文件名,A,片材,範圍)寫入到指定的片材和範圍。使用語法'C1:C2'來指定範圍,其中C1和C2是定義該區域的兩個對角。

希望這可以幫助,但我也同意盧卡的答案。