Одна вещь, которую вы можете попробовать, - это открыть текстовый файл в виде двоичного файла, выполнить поиск до конца файла и прочитать отдельные символы (то есть байты) назад от конца файла. Этот код будет читать символы с конца файла до тех пор, пока не попадет на символ новой строки (игнорируя символ новой строки, если найдет его в самом конце файла):
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