2010-03-18 3 views
1

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

дос команда

type file*.xls> sumfile.xls
I have from 10-100 excel files with similar file name formats excet the date XXXXX_2010_03_03.xls, XXXXX_2010_03_03.xls and so on.....
Is there a command to copy the files one after other. All files are of diff length so i cannot know the position of the rows after each file. I would like to have them copied in same sheet of excel.

Благодарности

+0

вместо того, чтобы суммировать, я считаю, что слово, которое вы ищете, является конкатенатным. На первый взгляд, я думал, что вы хотите на самом деле просуммировать таблицу – Fuzz

ответ

1

имена файлов Get

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

не работает, говорит имя файла должно быть строкой –

+0

Там, по крайней мере, одна ошибка: она должна быть имена {I} – Jonas

+0

@AP: извините, фиксированная; @Jonas: Спасибо! Я не мог работать, чтобы это проверить ... – AVB

0

Используйте xlswrite(filename, M, range) писать файлы один за другим. Прочтите файл Excel в M с помощью xlsread.

xlswrite(filename, M, range) writes matrix M to a rectangular region specified by range in the first worksheet of the file filename.

+0

Вы можете использовать uigetfile, чтобы получить возможность пользователю выбрать, какие файлы они хотят сцепить вместе, а затем использовать xlsread и xlswrite читать их в MATLAB, и записать их снова – Fuzz

Смежные вопросы