我有20個文本文件,我想使用matlab循環來獲取每個文件的最後一行,而不考慮其他行。有沒有任何matlab命令來解決這個問題?Matlab命令來訪問每個文件的最後一行?
5
A
回答
5
你可以嘗試的一件事是打開文本文件作爲二進制文件,尋找到文件的末尾,並從文件的末尾向後讀取單個字符(即字節)。直到碰到一個換行符(忽略換行,如果它發現它在文件的末尾)這段代碼從文件中讀取的結束字符:
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
它可能不是很有效,但對於短文件來說就足夠了。
function pline = getLastTextLine(filepath)
fid = fopen(filepath);
while 1
line = fgetl(fid);
if ~ischar(line)
break;
end
pline = line;
end
fclose(fid);
相關問題
- 1. zsh:訪問給腳本的最後一個命令行參數
- 2. 訪問在逃逸中的最後一個git命令輸出
- 3. Shell命令對文件的每一行
- 4. 從matlab中的文本文件運行一個命令
- 5. Unix命令將文件的最後一行復制到另一個文件
- 6. 命令由最後一個
- 7. 對phing目標中的每個文件執行一個命令
- 8. 在bash中的每個命令之後執行命令
- 9. 訪問matlab單元陣列中的最後一個數據點
- 10. 從每個文本文件中刪除最後一個空行
- 11. 我如何重複sqlite命令行中執行的最後一個sql命令?
- 12. 忽略文本文件中每行的最後一個字?
- 13. 執行一個命令行.exe文件
- 14. 從MATLAB運行JavaScript命令來獲取PDF文件
- 15. 獲取windows批處理文件中的最後一個命令行參數
- 16. 訪問命令行參數
- 17. 上一個命令完成後執行下一個命令
- 18. AutoIt:完成前一個命令後運行下一個命令
- 19. 在文件的每一行上運行MySQLdump;未找到命令
- 20. 如何爲文件中的每一行執行命令?
- 21. 修剪文本文件中一行的第一個和最後一個字符的命令
- 22. 繞過Spark(Scala)中每個文件的最後一行
- 23. 運行IRB命令歷史記錄中的最後一個X命令?
- 24. PHP:如何訪問XML文件中的最後一個元素
- 25. 在文本文件中的每個id上運行一個命令
- 26. 在OSX上從命令行訪問MATLAB El Capitan
- 27. AppRequest最後一個Unity facebook SDK中的無效訪問令牌
- 28. ECHO命令echo僅顯示我的文件的最後一行,而不是顯示每行
- 29. 執行linux中前一個命令的最後一個輸出行
- 30. 從txt文件的每一行刪除第一個和最後一個字符
每個文件中的行數不相同,可以是隨機的。 – bzak 2010-04-17 18:06:06