2016-10-31 12 views
0

私が書いたコードをいくつか拡張しようとしています。以下のスクリプトを含めると便利です。複数のExcelファイルの読み込み、平均化、Matlabの単一のExcelファイルへの書き込み

% importing single excel sheet 

data = xlsread('test_file.xlsx'); 

% averaging durations (exluding NaNs) 

average_rx_time = mean(reaction_time, 'omitnan'); 
average_reach_dur = mean(reach_dur, 'omitnan'); 
average_lift_dur = mean(lift_dur, 'omitnan'); 
average_hold_dur = mean(hold_dur, 'omitnan'); 
average_withdrawal_dur = mean(withdrawal_dur, 'omitnan'); 

% Excel file output containing daily averages 

a = [average_rx_time, average_reach_dur, average_lift_dur, average_hold_dur, average_withdrawal_dur]; 
data_cells = num2cell(a); 
column_headers ={'Rx Time', 'Reach Dur', 'Lift Dur', 'Hold Dur', 'Withdrawal Dur'}; 
row_headers(1,1) ={'Day 1'}; 
output = [{' '} column_headers; row_headers data_cells]; 
xlswrite('Test.xls', output); 

この部分は機能します。 1つのExcelシートで値の束を読み取り、いくつかの数値の平均をとり、その平均値を別のExcelシートに印刷します。私が今行う必要があるのは、ディレクトリ内の複数のファイルを読み込み(各ファイルはすべて同じファイルタイプである)、各ファイルの平均値を平均して、スプレッドシート内のそれぞれのファイル名で印刷します。

私はループを使うべきだと思いますが、実装する場所がわかりません。私はまた、同じものに印刷している間に複数のExcelファイルを読む方法もわかりません。何か案は?

おかげで、 ミッキー

答えて

0

は、指定したフォルダ内のファイルの一覧を取得するにはcddir機能を使用します。

cd('\path\to\folder'); % set MATLAB's current folder 
fileList = dir('*.xlsx'); % get list of .xlsx files in a struct array 

for fileNum = 1:length(fileList) 
    fileName = fileList(fileNum).name; 

    % do whatever you want with fileName here 

end 
関連する問題