我有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