跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
MATLAB / Octave算法

MATLAB textread 函数详解与常见用法整理

MATLAB textread 函数用于格式统一文件的批量读取。通过指定文件名、格式字符串及可选参数(如分隔符、跳过行数),可灵活解析数值、字符及混合数据。支持忽略特定列、处理空值及注释行,是快速导入数据的实用工具。

lzdxwyh发布于 2024/12/25更新于 2026/4/251 浏览
MATLAB textread 函数详解与常见用法整理

textread 函数适用于格式统一的 txt 文件一次性大批量读取,无需先调用 fopen。它通过指定文件名、格式字符串及可选参数,灵活解析数值、字符及混合数据。

基本语法

[A,B,C,...] = textread(filename, format)
[A,B,C,...] = textread(filename, format, N)
  • filename:目标文件名。
  • format:读取格式,如 %f(浮点)、%s(字符串)、%d(整数)等。
  • N:读取次数或行数。
  • 输出变量个数必须与 format 中定义的占位符数量一致。

注意:参数顺序很重要,filename、format、N 需放在其他选项之前。

场景一:无分隔符的纯数字矩阵

假设 mytest.txt 内容如下:

1 2 3 4
5 6 7 8
9 10 11 12

使用 %n 匹配任意数字:

[data1,data2,data3,data4] = textread('mytest.txt','%n%n%n%n');
data = [data1 data2 data3 data4];

结果将按列填充。若需限制读取行数,可添加第三个参数:

[data1,data2,data3,data4] = textread('mytest.txt','%n%n%n%n',3);

场景二:带分隔符的数据

对于逗号或分号分隔的文件,需指定 delimiter 参数。例如 myfile.txt:

1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12

读取时自动跳过分隔符:

[data1,data2,data3,data4] = textread('myfile.txt','%n%n%n%n','delimiter', ',');

处理 Iris 数据集时,若包含类别标签:

[data1,data2,data3,data4,data5] = textread('Iris.txt','%f%f%f%f%s','delimiter',',');

若只想读取前四列数值,忽略最后一列:

[data1,data2,data3,data4] = textread('Iris.txt','%f %f %f %f %*s',150,'delimiter',',');

其中 %*s 表示跳过该字段。

场景三:处理注释行

如果文件首行是注释,可使用 headerlines 跳过:

[data1,data2,data3,data4] = textread('myfiles.txt','%n%n%n%n','delimiter', ',', 'headerlines', 1);

headerlines 设为 1 即跳过第一行,可根据实际注释行数调整。

场景四:混合数据类型与跳过列

当一行中包含字符串、数字和布尔值时,格式串需对应:

[names, types, x, y, answer] = textread('myfile4.txt' , '%s %s %f %d %s', 1);

若中间某列不需要,可用 %*f 忽略:

[names, types, y, answer] = textread('myfile4.txt' , '%s %s %*f %d %s', 1);

或者提取特定部分,如从 Level1 中提取数字:

[names, levelnum, x, y, answer] = textread('myfile4.txt','%s Level%d %f %d %s', 1);

场景五:处理空值

文件中存在缺失数据时,可用 emptyvalue 将其替换为 NaN:

[data1 data2 data3 data4 data5 data6] = textread('myfile5.txt','%f%f%f%f%f%f', 'delimiter', ',', 'emptyvalue', NaN);

这样空位会显示为 NaN,便于后续计算处理。

场景六:跳列读取

若只需读取每行的部分内容,可利用正则表达式跳过剩余字符:

[names] = textread('myfile6.txt','%s%\[^\n\]');

%\[^\n\] 表示读取到行尾,但 %* 开头则直接跳过该行剩余内容。此技巧适合快速提取单列信息。

场景七:日期时间格式

对于结构化较强的日志或数据,可拆分日期时间字段:

[location year month day hour minute discharge] = textread('myfile7.txt','%s%f-%f-%f%f:%f%f','headerlines',1,'delimiter',';');

注意分隔符与格式串中的符号需严格对应。

小结

textread 在处理旧版数据或简单文本导入时非常高效。不过需注意,在新版 MATLAB 中,建议优先考虑 readtable 或 importdata,以获得更好的兼容性和功能支持。

目录

  1. 基本语法
  2. 场景一:无分隔符的纯数字矩阵
  3. 场景二:带分隔符的数据
  4. 场景三:处理注释行
  5. 场景四:混合数据类型与跳过列
  6. 场景五:处理空值
  7. 场景六:跳列读取
  8. 场景七:日期时间格式
  9. 小结
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog

更多推荐文章

查看全部
  • 机器学习十大核心算法原理与 Python 实现
  • 二叉树重建与完全二叉树判定实战
  • Z-Image-Turbo 孙珍妮模型部署与提示词实战
  • 2019 年 CSP-S 提高组初赛真题解析:取石子游戏
  • 6 个道德黑客技术学习平台推荐与入门指南
  • 前端安全:别让你的应用变成黑客的游乐场
  • 基于 React 前端和 Node.js 后端的实时聊天应用
  • C++ 多态的实现原理
  • OpenClaw:AI 直接操控电脑工具使用指南
  • nnWNet:重新思考 Transformer 在生物医学图像分割中的应用
  • JavaScript Response 对象详解与使用指南
  • 大模型提示词编写的 10 个常见误区
  • 基于 MATLAB 的动态环境下多无人机系统协同路径规划与防撞
  • Webnovel Writer:基于 Claude Code 的长篇网文 AI 创作系统
  • 企业微信 CLI 开源:集成 AI Agent 实现消息、日程与文档自动化
  • AI 时代初级开发者的创意生存指南:如何避免被算法压制
  • 谷歌 TurboQuant 算法:内存占用减少至少 6 倍
  • Stable Diffusion WebUI 本地部署指南:CUDA、cuDNN 及 PyTorch GPU 环境配置
  • 即梦 AI 基础操作入门教程
  • libIEC61850 开源 IEC 61850 协议库使用指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online