我们着重看一下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介绍以及使用时可能遇到的问题相关推荐

  1. Linux基础(6)--文件IO操作

    文件IO操作 1. open打开操作 2. close关闭操作 3. creat创建操作 4. write写操作 5. read读操作 Linux下一切皆文件,所以文件IO是很重要的也是很基础的操作. ...

  2. C++之文件IO操作流

    C++之文件IO操作流 前两节介绍了C++的IO流类库,标准设备IO操作流中部分预定义流对象的成员函数以及IO格式控制.那今天我将继续介绍关于C++中的流操作内容--文件IO操作流fstream.并会 ...

  3. 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作

    基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...

  4. C++之 文件IO操作流

    关于C++中的流操作内容--文件IO操作流fstream.并会着重讲解C++是如何对文件进行操作的. 文件指存放在外部介质上的数据的集合.大家都知道操作系统是以文件为单位来对数据进行管理的.因此如果你 ...

  5. matlab对图像操作函数的详解(笔记1)

    matlab对图像操作函数的详解 一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 注:计算机E盘上要有w01相应的.ti ...

  6. C++ 文件IO操作

    C++ 文件IO操作 前言 最近跟着b站课程学习了C++的文件IO操作相关知识点,写下该篇blog记录并总结相关知识点 附上链接: 课程链接 对于io操作,我采取写文件和读文件做区分,而对于文件类型又 ...

  7. 学习C语言对文件的操作函数

       1.2  文件的输入输出函数 键盘.显示器.打印机.磁盘驱动器等逻辑设备, 其输入输出都可以通过文件管理的方法来完成.而在编程时使用最多的要算是磁盘文件, 因此本节主要以磁盘文件为主, 详细介绍 ...

  8. python和R文件IO操作对比及dataframe创建方式对比:read_csv、to_csv、write.csv、 data.frame、pd.DataFrame

    python和R文件IO操作对比及dataframe创建方式对比 很多工程师可能刚开始的时候只熟悉python或者R其中的一个进行数据科学相关的任务. 那么如果我们对比这学习可以快速了解语言设计背后的 ...

  9. linux的文件io操作(转)

    linux文件IO操作有两套大类的操作方式:不带缓存的文件IO操作,带缓存的文件IO操作.不带缓存的属于直接调用系统调用(system call)的方式,高效完成文件输入输出.它以文件标识符(整型)作 ...

  10. python io操作有什么_Python笔记:文件IO操作

    读取文件 使用open()打开文件,文件不存在会抛出IOError错误. try: f = open('/path/to/file', 'r') print(f.read()) finally: if ...

最新文章

  1. HDU5154拓扑排序模版题
  2. js正則表達式--验证表单
  3. Linux 系统之虚拟化部署
  4. InvalidClassException异常_原理和解决方案
  5. UVa1600 PatrolRobot 巡逻机器人(bfs)
  6. n76e885_新唐N76E003,N76E616烧录,调试各种问题集【坑集】
  7. 初识python多线程
  8. 如何理解 scanf(%*s,str)?
  9. 《自己动手写网络爬虫》笔记4-带偏好的网络爬虫
  10. Ubuntu 14.04 LTS 启动blast2go 报错
  11. 微信小游戏《海盗来了》测评
  12. mysql c盘满了 怎么办_C盘满了如何清理
  13. 科技兴关,荣联与天津海关共建基因组数据库及分析平台
  14. 对L1正则化和L2正则化的理解
  15. 【读书笔记】《中庸(国学大书院)》
  16. JavaScript——疑难杂症总结
  17. html5 3d在线试衣源码,3D版HTML5模拟衣服撕扯动画
  18. 深入理解图优化与g2o : 图优化理论与g2o的使用
  19. 转账到支付宝账户产品介绍
  20. js下载文件的方法(H5、PC)(小程序)

热门文章

  1. python中while用法
  2. 苹果好用的测试软件,Mac上有什么好用的Mac内存检测软件?
  3. 「ZigBee模块」协议栈-串口透传,打造无线串口模块
  4. 三角形内角和是180°?不对!外角和才规律——张景中院士用实例启迪科学理论思想,附张景中院士简历(公号“外角和思想”下载PDF)
  5. css伪类设置小标签
  6. 平时的工作如何体现一个人的技术深度?
  7. 【网络】4G、5G频段汇总
  8. 肿瘤异质性:精准医学需要解决的难题
  9. python过滤器_python中的Butterworth过滤器
  10. 非法吸收公众存款罪的6大无罪辩点(根据无罪判例提炼)