Uno dei possibili modi per caricare dei files da un cartella (non necessariamente inserita nel path di MatLab) consiste nell'utilizzare la funzione "
dir" per ottenere l'elenco dei files da caricare e passare quindi l'elenco alla funzione
load per l'effettiva lettura.
Alla funzione
dir si può passare come argomento il path di una cartella e le "indicazioni" sui files da cercare; per la definizione dei nomi dei files si possono infatti usare le "wildcard" (es. "*").
Un paio di esempi:
lista=dir('d:\users\*.mat')
lita=dir('d:\users\data*.mat')
la funzione dir restituisce l'elenco dei files trovati in una variabile di tipo "
struct" il campo "
name" della quale contiene il nome del file (un vettore se vengono trovati più files).
Quindi, attraverso un ciclo for l'elenco dei files alla funzione
load.
La soluzione proposta è stata implementata nello script che segue.
Nello script si assume che nella directory "d:\munica" (una di directory non inserita nel path di MatLab) siano presenti uno o più files ".mat" il nome dei quali è "sim_out_file_1.mat", "sim_out_file_2.mat", ...
Nello script sono presentati tre modi diversi per costruire il parametro (path + nome file) da fornire in input alla funzione
dir (due di essi sono "commentati").
%
% Definizione del nome della directoty nella quale si trovano i files
% ".mat"
%
dir_name='d:\musica\';
%
% Tre modi per definire il nome dei files
%
%
% PRIMO MODO: se il nome dei files ".mat" da leggere ha una RADICE comune e
% nellla directoty ci sono altri file che non si vogliiono caricare
%
file_name_root='sim_out_file';
file_list=dir([dir_name file_name_root '*.mat'])
%
% SECONDO MODI: se il nome dei files ".mat" da leggere ha una PARTE comune
% e nellla directoty ci sono altri file che non si vogliiono caricare
%
% % % file_name_root='*out_file*';
% % % file_list=dir([dir_name file_name_root '.mat'])
%
% TERZO MODO: se si vogliono caricare tutti i files ".mat" della directory
%
% % % file_name_root='';
% % % file_list=dir([dir_name file_name_root '*.mat'])
n_files=length(file_list);
for i=1:n_files
load([dir_name file_list(i).name])
end
Hope this helps.