2009-10-30 16 views
0

在文件中的變量存儲爲了存儲可變DIST到文件優選Excel文件,我們可以使用如何在MATLAB

xlswrite('a.xls', dist) 

dlmwrite('a.txt', dist, ',') 

問題是假設變量dist在程序中處於循環中並且每次程序按照輸入運行時返回不同的值,則每次重寫a.xls並且I ge t僅寫入文件中的最後一個值dist

如何將變量dist的所有值寫入文件?

+3

您可以使用'dlmwrite('a.txt',dist,',','--append')'附加到文件。注意在你的情況下,這可能不是最有效的方法... – Amro 2009-10-30 13:37:51

回答

3

爲什麼不創建一個臨時數組來存儲dist值的循環大小。然後當循環結束時,只需使用xlswrite函數將數組寫入文件即可。

例如...

distValues = zeros(loopIter,1); 
for i = 0:loopIter 

% Make calculations here 

distValues(i) = dist; 
end 

xlswrite('a.xls', distValues); 

如果a.xls已經存在,並且有你想第一次加載,嘗試在它的值...

inDist = xlsread('a.xls'); 
distValues = zeros(loopIter,1); 
for i =0:loopIter 

% Make calculations here 

distValues(i) = dist; 
end 

distValues = [inDist; distValues] 

xlswrite('a.xls', distValues); 

我希望幫助

+0

好主意,但如果循環取決於用戶是否想要更多地運行它。例如。 dist是在我的程序中計算出來的,然後是用戶是否想要再次運行的問題框。如果他回答是,那麼只有程序運行。 – anubhav 2009-10-30 13:31:57

+0

我想我不太明白。因此,您在第一次運行程序時計算dist,但如果用戶選擇再次運行程序,則不計算新的dist? – Shaka 2009-10-30 13:48:47

+0

是的,我再次這樣做,但那樣循環迭代不固定。無論如何,我解決它與您的想法。我正在使用while循環來檢查用戶是否想要再次運行,並在循環中引入了i並將其與dist一起使用,並在每次用戶選擇再次運行時將其加1。謝謝。我是否可以在下一列中存儲一個字符串,如'hello'以及dist值,然後再次將一個字符串轉換爲下一個dist值的行,等等。 – anubhav 2009-10-30 13:55:53