Caricare file.mat da altre cartelle

di il
2 risposte

Caricare file.mat da altre cartelle

Salve a tutti.
vi espongo il mio problema. dopo aver fatto la simulazione con simulink il programma mi crea numerosi file.mat all'interno della cartella scelta come principale. poiché devo fare numerose simulazioni e salvare i risultati ottenuti (che poi verranno graficati) vorrei salvare i vari file.mat di ogni simulazione in diverse cartelle (posso spostarli anche manualmente dopo ogni simulazione) per poi poter richiamare il tutto da in unico m.file... mi hanno consigliato di usare uno script simile:

folder=char('nome cartella');
load(strcat('folder','file.mat'));

solo che c'è qualcosa che non funziona... sapreste dirmi dove sta l'errore oppure sapreste consigliarmi cosa fare?

grazie mille

2 Risposte

  • Re: Caricare file.mat da altre cartelle

    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.
  • Re: Caricare file.mat da altre cartelle

    Grazie mille. gentilissimo
Devi accedere o registrarti per scrivere nel forum
2 risposte