我有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. Unix命令将文件的最后一行复制到另一个文件
- 5. 从matlab中的文本文件运行一个命令
- 6. Python的命令来获得最后一部分文件
- 7. 命令由最后一个
- 8. 访问命令行
- 9. 访问Matlab帮助命令的输出
- 10. 对phing目标中的每个文件执行一个命令
- 11. 使用命令行来调用2个matlab文件,其中第二个文件依赖于第一个文件
- 12. 一次为每个文件执行多个批处理命令
- 13. 来自命令行的Matlab ARGV
- 14. 在bash中的每个命令之后执行命令
- 15. 每个命令后zsh新行提示
- 16. 访问matlab单元阵列中的最后一个数据点
- 17. 从每个文本文件中删除最后一个空行
- 18. 我如何重复sqlite命令行中执行的最后一个sql命令?
- 19. 忽略文本文件中每行的最后一个字?
- 20. 执行一个命令行.exe文件
- 21. java命令访问文本文件
- 22. 从MATLAB运行JavaScript命令来获取PDF文件
- 23. 在Grails中的每个()中的最后一项上运行命令
- 24. qmake:最后执行命令
- 25. 获取windows批处理文件中的最后一个命令行参数
- 26. C++解析复杂文件,每行指定一个命令
- 27. 替代getatime来查找python中的最后一个文件访问
- 28. 希伯来语在命令行 - MATLAB
- 29. Php sqlite命令行访问
- 30. 访问命令行参数
每个文件中的行数不相同,可以是随机的。 – bzak 2010-04-17 18:06:06