Matlab文件IO操作函数,fgetl和textscan介绍以及使用时可能遇到的问题
我们着重看一下fgetl的实现,lt返回的是换行符的ASCII代码值,0D0A,所以fgetl是能够返回指定文件的下一行并删除换行符的,fgets读取时会保留换行符。
当textscan和fgetl配合使用的时候,会碰到以下情况,textscan读取数据之后,fgetl再读取数据读出来的是空值。
原因: texscan是一个需要指定格式和调用次数的函数,他对文件的操作并不是以换行符为分界线的,所以fgetl在textscan之后调用时,需要对遗留的换行符进行处理,所以每次fgetl会有一次返回空值的情况。
C = textscan(fileID,formatSpec,N) /*按 formatSpec 读取文件数据 N 次,其中 N 是一个正整数。
要在 N 个周期后从文件读取其他数据,请使用原 fileID 再次调用 textscan 进行扫描。
如果通过调用具有相同文件标识符 (fileID) 的 textscan 恢复文件的文本扫描,则 textscan 将在上次终止读取的点处自动恢复读取*/
function tline = fgetl(fid)
%FGETL Read line from file, discard newline character.
% TLINE = FGETL(FID) returns the next line of a file associated with file
% identifier FID as a MATLAB character vector. The line terminator is NOT included.
% Use FGETS to get the next line with the line terminator INCLUDED. If just an
% end-of-file is encountered, -1 is returned.
%
% If an error occurs while reading from the file, FGETL returns an empty character
% vector. Use FERROR to determine the nature of the error.
%
% MATLAB reads characters using the encoding scheme associated with the file. See
% FOPEN for more information.
%
% FGETL is intended for use with files that contain newline characters. Given a
% file with no newline characters, FGETL may take a long time to execute.
%
% Example
% fid=fopen('fgetl.m');
% while 1
% tline = fgetl(fid);
% if ~ischar(tline), break, end
% disp(tline)
% end
% fclose(fid);
%
% See also FGETS, FOPEN, FERROR.% Copyright 1984-2016 The MathWorks, Inc.narginchk(1,1)[tline,lt] = fgets(fid);
tline = tline(1:end-length(lt));
if isempty(tline)tline = '';
endend
Matlab文件IO操作函数,fgetl和textscan介绍以及使用时可能遇到的问题相关推荐
- Linux基础(6)--文件IO操作
文件IO操作 1. open打开操作 2. close关闭操作 3. creat创建操作 4. write写操作 5. read读操作 Linux下一切皆文件,所以文件IO是很重要的也是很基础的操作. ...
- C++之文件IO操作流
C++之文件IO操作流 前两节介绍了C++的IO流类库,标准设备IO操作流中部分预定义流对象的成员函数以及IO格式控制.那今天我将继续介绍关于C++中的流操作内容--文件IO操作流fstream.并会 ...
- 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作
基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...
- C++之 文件IO操作流
关于C++中的流操作内容--文件IO操作流fstream.并会着重讲解C++是如何对文件进行操作的. 文件指存放在外部介质上的数据的集合.大家都知道操作系统是以文件为单位来对数据进行管理的.因此如果你 ...
- matlab对图像操作函数的详解(笔记1)
matlab对图像操作函数的详解 一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 注:计算机E盘上要有w01相应的.ti ...
- C++ 文件IO操作
C++ 文件IO操作 前言 最近跟着b站课程学习了C++的文件IO操作相关知识点,写下该篇blog记录并总结相关知识点 附上链接: 课程链接 对于io操作,我采取写文件和读文件做区分,而对于文件类型又 ...
- 学习C语言对文件的操作函数
1.2 文件的输入输出函数 键盘.显示器.打印机.磁盘驱动器等逻辑设备, 其输入输出都可以通过文件管理的方法来完成.而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍 ...
- python和R文件IO操作对比及dataframe创建方式对比:read_csv、to_csv、write.csv、 data.frame、pd.DataFrame
python和R文件IO操作对比及dataframe创建方式对比 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计背后的 ...
- linux的文件io操作(转)
linux文件IO操作有两套大类的操作方式:不带缓存的文件IO操作,带缓存的文件IO操作.不带缓存的属于直接调用系统调用(system call)的方式,高效完成文件输入输出.它以文件标识符(整型)作 ...
- python io操作有什么_Python笔记:文件IO操作
读取文件 使用open()打开文件,文件不存在会抛出IOError错误. try: f = open('/path/to/file', 'r') print(f.read()) finally: if ...
最新文章
- HDU5154拓扑排序模版题
- js正則表達式--验证表单
- Linux 系统之虚拟化部署
- InvalidClassException异常_原理和解决方案
- UVa1600 PatrolRobot 巡逻机器人(bfs)
- n76e885_新唐N76E003,N76E616烧录,调试各种问题集【坑集】
- 初识python多线程
- 如何理解 scanf(%*s,str)?
- 《自己动手写网络爬虫》笔记4-带偏好的网络爬虫
- Ubuntu 14.04 LTS 启动blast2go 报错
- 微信小游戏《海盗来了》测评
- mysql c盘满了 怎么办_C盘满了如何清理
- 科技兴关,荣联与天津海关共建基因组数据库及分析平台
- 对L1正则化和L2正则化的理解
- 【读书笔记】《中庸(国学大书院)》
- JavaScript——疑难杂症总结
- html5 3d在线试衣源码,3D版HTML5模拟衣服撕扯动画
- 深入理解图优化与g2o : 图优化理论与g2o的使用
- 转账到支付宝账户产品介绍
- js下载文件的方法(H5、PC)(小程序)