2013-05-30 59 views
0

我正在使用MATLAB R2010b。我正在用k-means算法進行聚類。每次執行時,它總是顯示不同的結果。我希望在Excel中保存它。如何讓用戶在MATLAB中輸入EXCEL文件的名稱?

這裏是我的代碼片段:

y = [data x]; 
xlswrite('clustering.xls', y, 'KMEANS', 'A1'); 

正如我以前說過;每次執行時,它都會顯示不同的結果,因此clustering.xls會始終更新,更新和更新 - 而不保存舊文件。我想保存所有的歷史。我認爲唯一能解決這個問題的就是用戶重命名他們自己的文件 - 但效率不高。所以,我想我需要一個消息框讓用戶輸入他們的xls文件的名稱。

如何讓它成爲可能?任何想法?

我很欣賞所有的答案。

謝謝。

回答

2

使用輸入功能:

y = [data x]; 
xlsFileName = input('Enter the name for the xls file: ', 's'); 
xlswrite(xlsFileName, y, 'KMEANS', 'A1'); 
+0

非常感謝!這很簡單,而且更容易。去這裏。 :) –

4

您似乎可能會發現uiputfile對您的任務有用。
參見文檔:http://www.mathworks.com/help/matlab/ref/uiputfile.html

+0

謝謝你,謝謝你的回答,但是uigetfile根本就不是我要找的東西。它用於導入文件。在這種情況下,我想**將文件導出到excel中。我已經做得很清楚了(查看代碼片段),但我想要求用戶在導出之前輸入他們自己的excel的名稱。 –

+0

@AlviSyahrin您是否考慮過我提供的'uiputfile'? – Shai

2

我建議一個稍微不同的替代方案,即,通過改變第三輸入各組結果寫入到一個單獨的在Excel中。

下面的循環演示了一個簡單的例子:

for ii = 1:10 
    xlswrite('test.xlsx',rand(10),ii) 
end 

你會發現他張名爲sheet1, sheet2,...

您也可以禁止有關創建新表與警告:

warning('off','MATLAB:xlswrite:AddSheet') 
+0

+1尤其是,如果OP想要保存所有歷史記錄,連續輸入文件名可能會變得繁瑣。 – Schorsch

+0

謝謝你的另一種想法!我認爲這將會更有效率。 :) –

相關問題