|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2007
Messaggi: 91
|
MATLAB Leggere file da posizione precisa
Ciao a tutti,
ho un file di testo con una serie di 128x128 dati numerici separati da spazio ed alcune righe di intestazione in alto. Che comando devo usare per creare un vettore "A" che contenga i dati della 20-esima riga, dalla colonna64 alla colonna 128? E per creare un vettore "B" che contenga i dati della 20-esima colonna, dalla riga 70 alla riga 9? Grazie. |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Dec 2007
Messaggi: 91
|
Sono riuscito col comando:
dati = dlmread('file.txt', '\t', 'BL1..BL64'); e mi legge la colonna BL dalla riga 1 alla 64. Può andare o presenta problemi nascosti? Altra domanda, il mio file ha 8 righe di intestazione, con parole, numeri e spazi bianchi. Fin'ora li ho cancellati a mano, come posso dirgli di non leggerli? |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Dec 2007
Messaggi: 91
|
Ok. e sai dirmi come con un esempio?
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Dec 2007
Messaggi: 91
|
Io ti ringrazio Antonio, approfondirò quei comandi ma gia ho cercato online la soluzione prima di scrivere qui.
Un esempio proprio non puoi farmelo? Supponiamo voglia leggere i valori numerici e saltare l'intestazione di questo file tra le due linee: ________________________________ Intestazione 1 0 5 commenti vari 25 78 125 248 12 36 0.2 15 74 259 32 0.325 ________________________________ |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Dec 2007
Messaggi: 91
|
Sto cercando di trovare il comando giusto con la corretta sintassi.
Un esempio poi aiuta molto a capire. Se lo sai scrivi sto esempio che ci metti un minuto, se non lo sai evita di far polemica che non capisco a cosa serve. |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Dec 2007
Messaggi: 91
|
Certo che ho fatto help fscanf ma la descrizione e le due righe di esempio non dicono come saltare farti del file.
Poi non so per quale motivo assumi questo tono arrogante, non hai idea di chi io sia e cosa faccia. Ti ripeto, sei non vuoi aiutarmi oltre non rispondere. |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Dec 2007
Messaggi: 91
|
Ho trovato la soluzione:
Basta inserire il comando fgets in un ciclo for per saltare il numero di righe di intestazione e poi leggere i dati con fscanf. Esempio per file con 2 righe di intestazione (contano anche le righe vuote) file.txt: ________________________________ Intestazione 1 Intestazione 2 1 2 3 4 5 6 ________________________________ fid = fopen ( file.txt,'r'); for i=1:4 tline = fgets(fid); end A = fscanf (fid, '%f',[3 2]); fclose(fid) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:18.