2016-02-19 80 views
0

我有一個excel文件,20行81列。每行的第一列包含代碼,其餘列包含值。在Excel文件中保存基於單元格的文件

我想爲每一行創建一個* .mat文件,並使用位於第一列的代碼名稱進行保存。

舉例來說,如果我有一個排,看起來像下面這樣:

202 100 200 300 400 

然後將產生的數據應保存到「202.mat」

100 200 300 400 

我有這樣的代碼,以便遠:

allData = xlsread('matlab2.xlsx'); 
names = allData(1,1:1); 
values = allData(1,2:81); 
+0

你有* .mat文件包含20x81數據還是一個excel文件?根據你的例子,它是一個excel文件。 – Suever

回答

0

假設你有allData,你在你的問題都表示,你可以簡單地做到以下幾點。在包含你的數據

names = allData(:,1); 
values = allData(:,2:end); 

for k = 1:numel(names) 
    matfilename = sprintf('%s.mat', names{k}); 
    data = [values{k,:}]; 
    save(matfilename, 'data'); 
end 

這將創建一個文件.MAT與可變data保存它。

+0

謝謝sever, 我已經試過你的代碼,但我只獲得不同的文件,如ұ.matԕ.mat... 沒有人稱爲代碼和包含值 –

+0

@HamgevaVage是代碼總是一個數字?如果是這樣,請嘗試編輯我在'sprintf'調用中使用'%d'而不是'%s'的地方。 – Suever

+0

這就是對的!非常感謝你Suever! bests! –

相關問題