Как открыть файл Excel в Matlab, запустить код, а затем перейти к следующему файлу и повторять, пока все файлы не будут обработаны? - PullRequest
0 голосов
/ 17 мая 2019

У меня есть несколько наборов данных в отдельных файлах Excel. Я выбираю свой файл Excel со всеми необработанными данными, он считывает пики в данных и сохраняет их. Есть сотни этих файлов Excel.

Мне нужно сохранить пиковые данные в одном файле Excel, но в то же время пометить верхнюю ячейку именем номера файла, например 1810992, а затем вертикально сохранить данные в столбце внизу. Это само по себе не должно быть слишком сложно.

Но мне нужно, чтобы программа перешла к следующему файлу Excel в папке, в которой он находится, и повторила процесс, но поместила следующий набор данных в следующий столбец.

Я не знаю, как открыть несколько файлов Excel или открыть один, а затем собрать отфильтрованные данные и сохранить их в следующем столбце, а затем открыть следующий файл Excel и повторить процесс, как в цикле for.

Это то, что написал автор кода, есть интерфейс, который, когда вы нажимаете кнопку Открыть папку, этот код запускается.

[h.inputFileName,h.directory, ~]=uigetfile('*.*');

tic
file = [h.directory,'\',h.inputFileName]; %combines directory and file 
name
[~,sheets] = xlsfinfo(file);

tmp_dat=csvread(file) ; 
h.time=tmp_dat(:,1) ; 
h.rawData1=tmp_dat(:,7) ;
h.rawData2=tmp_dat(:,4) ;

Опять же, это для одного файла Excel, мне нужно, чтобы он затем повторил процесс, но без моего физического нажатия. Чтобы просмотреть всю папку, пока все файлы Excel не будут прочитаны.

1 Ответ

0 голосов
/ 17 мая 2019

Вы можете использовать команду dir для вывода списка файлов в вашем текущем каталоге.Вы также можете добавить фильтр, подобный приведенному ниже.

dir('*.xls*' )

В нем будут перечислены все файлы Excel (xls и xlsx) вашего текущего каталога.Затем вы должны сделать цикл for, чтобы повторить процесс.

В опубликованной вами программе вы используете csvread, xlsread может быть более подходящим.

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