Matlab, расширенный цикл в папках и применение функции - PullRequest
0 голосов
/ 28 января 2012

Я написал код, который анализирует видеофайл, затем выводит данные на график, а затем сохраняет этот график в excel и jpg.

, но моя проблема в том, что у меня есть более 200 видео для анализа примерно в 20 папках,

, поэтому мне нужно автоматизировать этот код для зацикливания внутри папок и анализа каждого файла * .avi внутри и

.. Так что любые идеи или предложения

Действительно ценю вашу помощь

Мне нужно знать, как зацикливать папки и получать файлы внутри и применять функцию кэти файлы в этой папке

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

1 Ответ

2 голосов
/ 28 января 2012

Команды dir и fullfile - это то, что вам нужно.В зависимости от вашей структуры каталогов, что-то вроде этого:

video_dir = 'videos';

% I'm not sure if there's a way to directly get a list of directories, but
% this will work
video_dir_children = dir(video_dir);
video_subdirs = [];
for ix = 1 : length(video_dir_children),
  % note we're careful to kick out '.' and '..' 
  %   (and any other directory starting with a '.')
  if(video_dir_children(ix).isdir && video_dir_children(ix).name(1) ~= '.')
    video_subdirs = [video_subdirs; video_dir_children(ix)];
  end
end

for ix = 1 : length(video_subdirs),
  this_dir = fullfile(video_dir, video_subdirs(ix).name);
  avi_files_in_this_dir = dir(fullfile(this_dir, '*.avi'));

  for jx = 1 : avi_files_in_this_dir,
    doVideoProcessing(fullfile(this_dir, avi_files_in_this_dir(jx).name));
  end

end
...