Ho 20 file di testo e voglio usare un ciclo MATLAB per ottenere l'ultima riga di ogni file senza prendere in considerazione le altre linee. c'è qualche comando MATLAB per risolvere questo problema?Comando Matlab per accedere all'ultima riga di ogni file?
5
A
risposta
5
Una cosa che si può provare è quella di aprire il file di testo come file binario, cercare fino alla fine del file e leggere i singoli caratteri (cioè i byte) all'indietro dalla fine del file. Questo codice leggerà caratteri dalla fine del file fino a quando non colpisce un carattere di fine riga (ignorando una nuova linea, se lo trova alla fine del file):
fid = fopen('data.txt','r'); %# Open the file as a binary
lastLine = ''; %# Initialize to empty
offset = 1; %# Offset from the end of file
fseek(fid,-offset,'eof'); %# Seek to the file end, minus the offset
newChar = fread(fid,1,'*char'); %# Read one character
while (~strcmp(newChar,char(10))) || (offset == 1)
lastLine = [newChar lastLine]; %# Add the character to a string
offset = offset+1;
fseek(fid,-offset,'eof'); %# Seek to the file end, minus the offset
newChar = fread(fid,1,'*char'); %# Read one character
end
fclose(fid); %# Close the file
3
2
Potrebbe non essere molto efficiente, ma per i file brevi può essere sufficiente.
function pline = getLastTextLine(filepath)
fid = fopen(filepath);
while 1
line = fgetl(fid);
if ~ischar(line)
break;
end
pline = line;
end
fclose(fid);
Problemi correlati
- 1. come moltiplicare ogni riga con ogni riga di un'altra matrice elementwise in matlab?
- 2. modalità di inserimento vi nella riga di comando Matlab?
- 3. Come accedere agli argomenti della riga di comando in Python?
- 4. Come accedere a Unix Domain Sockets dalla riga di comando?
- 5. Come si esegue un comando per ogni riga di un file?
- 6. Come elaborare ogni riga ricevuta a seguito di comando grep
- 7. È possibile aprire un file in un'istanza in esecuzione di Matlab dalla riga di comando?
- 8. Spostamento di file da riga di comando
- 9. Come accedere alla riga di comando in Eclipse
- 10. Nodejs - legge riga per riga dal file, esegue un'azione asincrona per ogni riga e riusa
- 11. Trasforma file web.config dalla riga di comando
- 12. comando matlab (da bash/riga di comando) su una sessione già in esecuzione
- 13. scrittura del file di riga di comando nel file
- 14. aggiungere testo alla fine di ogni riga
- 15. Riga di comando per modificare tnsnames.ora
- 16. MATLAB annulla un comando
- 17. Comando equavelent python per quantile in MATLAB
- 18. mysqldump un'INSERT per ogni riga di dati
- 19. MATLAB: estrai ogni ennesimo elemento del vettore
- 20. File batch per aggiungere caratteri all'inizio e alla fine di ogni riga nel file txt
- 21. C++ Leggere il file riga per riga e dividere ogni riga usando il delimitatore
- 22. Interruzioni di riga nelle stringhe MATLAB
- 23. Esegui comando ogni secondo
- 24. MATLAB: da matrice a vettore per riga
- 25. Esecuzione di un comando JavaScript da MATLAB per recuperare un file PDF
- 26. MVC sulla riga di comando
- 27. Come chiamare le funzioni MATLAB dalla riga di comando di Linux?
- 28. L'uso di "questo" in ogni classe MATLAB
- 29. .dSYM file generati dalla riga di comando (Mac)
- 30. lunghezza MATLAB di ogni elemento in array di celle
il numero di righe in ogni file non è lo stesso e può essere casuale. – bzak