Цикл в Matlab для пакетной обработки файлов Excel

Я знаю, как читать в нескольких файлах Excel, но изо всех сил, чтобы провести тот же анализ на всех этих файлов. Для анализа требуется I усреднить некоторые значения в разных столбцах, затем распечатать эти средние значения на отдельном листе Excel. Я могу сделать это с одним файлом Excel, но мне трудно понять, как печатать каждое среднее значение в другой строке в выходном файле Excel. Вот код, который работает для одного файла (читает его, средние значения в столбце 4, затем печатает в отдельный файл Excel):

 data = xlsread('test_1.xlsx');
 average_values_1 = data(:,4);
 a = [average_values_1];
 data_cells = num2cell(a);
 column_header ={'Average Value 1'};
 row_header(1,1) ={'File 1'}
 output = [{' '} column_header; row_header data_cells];
 xlswrite('Test Averages.xls', output);

Как я могу делать это снова и снова, печатая значения из каждого файла в выходном файле как свою собственную таблицу? Я подозреваю, что вложенный цикл находится в моем будущем.

Спасибо заранее.

1 ответ

  1. Вот рабочий пример того, что вы, возможно, хотите сделать с xlswrite[1]:

    filename = 'testdata.xlsx';  % Filename to save average values in
    for k = 1:10                 % Looping for 10 iterations
        sheet = 2;               % Selecting sheet2
        Avg = randi([1 10],1,1); % Generating a random average each time the loop is run
        xlRange = char(64+k);    % 65 is the ASCII value of A
        xlswrite(filename,Avg,sheet,xlRange); % Writing the excel file
    end
    

    Этот код дает следующие выходные данные [2] :

    выход1

    Инжир.1: значения сохраняются в одной строке файла excel

    Если вы хотите получить выходные данные в одном столбце, используйте это xlRange = ['A',num2str(k)];вместо этого. Это даст вам следующий выход [2] :

    output2

    Инжир.2: значения сохраняются в одном столбце файла excel


    [1]: Подробнее читайте в документацииxlswrite.

    [2]: выходные значения могут отличаться, так как генерируются случайные целые числа.