суммирование файлов Excel в Matlab - PullRequest
1 голос
/ 19 марта 2010

Есть ли простой способ суммировать различные файлы Excel в Matlab?то, что я действительно хочу, похоже на команду

dos

тип файла * .xls> sumfile.xls
У меня 10-100 файлов Excel с похожими форматами имен файлов, кромедата XXXXX_2010_03_03.xls, XXXXX_2010_03_03.xls и т. д.
Есть ли команда для копирования файлов один за другим.Все файлы имеют разную длину, поэтому я не могу знать положение строк после каждого файла.Я хотел бы скопировать их в один лист Excel.

Спасибо

Ответы [ 2 ]

1 голос
/ 19 марта 2010

Получить имена файлов

names=dir('XXXXX-*.xls');
names={names.name};
output='out.xls';

Первый файл. Это будет перезаписывать вывод каждый раз, когда вы запускаете эту программу - вам решать, хотите ли вы именно такое поведение.

copyfile(names{1},output);

Цикл по файлам

for i=2:length(names)
  num_in = xlsread(names{i}); % read the data
  num_out = xlsread(output);      

  range=['A' num2str(size(num_out,1)+1)]; % next free line 
  xlswrite(output, num_in, 1, range); %always write to the 1st sheet
end

Это должно работать, если (1) у вас есть только числовые данные и (2) вы хотите объединить (как вы выразитесь, «сумма») файлы сверху вниз.

Если (1) неверно, прочитайте справку xlsread - ищите выходы txt и raw.

0 голосов
/ 19 марта 2010

Используйте xlswrite(filename, M, range) для записи ваших файлов один за другим. Считайте файл Excel в M с xlsread.

xlswrite (имя файла, M, диапазон) пишет матрица М в прямоугольную область указанный диапазон в первом лист файла с именем файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...