File di Matlab che legge i file e li aggrega in una stessa m

di Anonimizzato9703 il
4 risposte
Salve,
ho scritto il seguente file matlab che legge dei file .csv e li aggrega in una stessa matrice che salva nel disco, dopodiché visualizza uno per uno l’andamento di tutte le acquisizioni.



clear all

close all



Matrice=[];

for i=14:268

nome=sprintf('tek%04.0fCH1.csv',i);

eval(['a=load(''' nome ''');']);

Matrice = [Matrice a];

end



save MatrAcq Matrice



for i=1:size(Matrice,2)

plot(Matrice(:,i));

grid

title(['Grafico dell''acq.ne n° ' int2str(i+13)])

disp('premere un tasto per continuare... Ctrl+C per finire')

pause

end



ma quando lo eseguo mi da:

??? Error using ==> load
Unable to read file tek0014CH1.csv: No such file or directory.


cosa sto sbagliando??

4 Risposte

  • Ti sta dicendo che non trova il file "tek0014CH1.csv" quindi o è sbagliato il nome del file oppure lo sta cercando nella cartella sbagliata. Matlab ricerca il file nella "current directory", ma puoi risolvere semplicemente passandogli tutto il percorso (c:/cartella1/cartella2/tek0014CH1.csv) in modo che sia indipendente dalla cartella in cui ti trovi al momento.
  • Ho risolto il problema della directory, ma ora mi dice:

    ??? Error using ==> load
    Number of columns on line 1 of ASCII file D:\TESI\Misure15-12\tek0014CH1.csv
    must be the same as previous lines.
  • La funzione load serve per caricare i file .mat, se il file csv è abbastanza semplice puoi usare csvread.

    Altra cosa, inizializza la matrice M, piuttosto che aggiungere righe ad ogni ciclo dato che sai già quante righe e quante colonne conterrà.
  • Finalmente ho risolto,
    lo script di matlab, per quanto non perfetto, alla fine funzionava....l'errore era che i file .csv, che sono stati salvati tramite un oscilloscopio elettronico nella prova che sto facendo, non erano ancora stati riordinati (eliminando virgole ed headers) per poter essere acquisiti da matlab come vettore.
    grazie;
    Mario.
Devi accedere o registrarti per scrivere nel forum
4 risposte