MATLAB文件I/O指南(3)高级文件I/O程序

Matlab 文件读写(I/O)和字符串操作常用命令 2015.01.06 Import Text Data Files with Low-Level I/O 基本函数: fscanf: 读写在text or ASCII file中的数据 fgetl: 一次读一行不保留换行符号 fgets: 一次读一行保留换行符号 fread:读二进制文件,与fwrite 对应 fscanf: A = fscanf(f 阅读详情
 

2、高级文件I/O程序(High Level Routines)

High level routines包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程。

举个例子,如果你有一个包含数值和字母的文本文件(text file)想导入MATLAB,你可以调用一些low level routines自己写一个函数,或者是简单的用TEXTREAD函数。

使用high level routines的关键是:文件必须是相似的(homogeneous),换句话说,文件必须有一致的格式。下面的段落描述一些high level file I/O routines并给出一些例子帮助理解概念。

LOAD/SAVE

主要的high level file I/O routines 是LOAD 和 SAVE函数。LOAD 可以读MAT-file data或者用空格间隔的格式相似的ASCII data. SAVE可以将MATLAB变量写入MAT-file格式或者空格间隔的ASCII data。大多数情况下,语法相当简单。下面的例子用到数值由空格间隔的ASCII file sample_file.txt :

1 5 4 16 8

5 43 2 6 8

6 8 4 32 1

90 7 8 7 6

5 9 81 2 3

Example: 用 LOAD and SAVE 读写数据

% Load the file to the matrix, M :
   
 M = load('sample_file.txt') 
    
% Add 5 to M :
   
 M = M +5 
    
% Save M to a .mat file called 'sample_file_plus5.mat':
   
 save sample_file_plus
   
    5 M
   
    
% Save M to an ASCII .txt file called 'sample_file_plus5.txt' :
   
 save sample_file_plus5.txt M -ascii 
    

UIGETFILE/UIPUTFILE

UIGETFILE/UIPUTFILE是基于图形用户界面(GUI)的。会弹出对话框,列出当前目录的文件和目录,提示你选择一个文件。UIGETFILE让你选择一个文件来写(类似Windows ‘另存为’选项?)。用UIGETFILE,可以选择已存在的文件改写,也可以输入新的文件名。两个函数的返回值是所选文件名和路径。

Example: 用 UIGETFILE 从当前目录选择一个 M-file

% This command lists all the M-files in the current directory and
   
% returns the name and path of the selected file
   
[fname,pname] = uigetfile('*.m','Sample Dialog Box') 
    

注意: UIGETFILE 一次只能选择一个文件。

UIIMPORT/IMPORTDATA

UIIMPORT是一个功能强大,易于使用的基于GUI的high level routine,用于读complex data files。文件也必须是homogeneous。

IMPORTDATA形成UIIMPORT的功能,不打开GUI。可以将IMPORTDATA用于函数或者脚本中,因为在函数或者脚本中基于GUI的文件导入机制并不理想。下面的例子用到包含几行文件头和文本、数值数据的文件 'sample_file2.txt' :

This is a file header.

This is file is an example.

col1 col2 col3 col4

A    1   4    612.000

B    1   4    613.000

C    1   4    614.000

D    1   4    615.000

Example: Using IMPORTDATA to read in a file with headers, text, and numeric data

% This reads in the file 'sample_file2.txt' and creates a
   
% structure D that contains both data and text data.
   
% Note the IMPORTDATA command specifies a white space 
   
% as the delimiter of the file, but IMPORTDATA can usually 
   
% detect this on its own 
   
D = importdata('sample_file2.txt','')  % 原文有误?
    
D = importdata('sample_file2.txt')
    

可以通过访问结构D的数据和文本域,来看结构D中的真实值,例如输入:

data = D.data
    
text = D.textdata 
    

可以用UIIMPORT读同一个文件并得到同样的结构.

注意: 对于 ASCII data, 你必须检验导入向导正确的识别了列分隔符。

 

    TEXTREAD/STRREAD

 

TEXTREAD 是一个强大的动态high level routine,设计用来读ASCII格式的文本和/或数值数据文件。STRREAD除是从字符串而不是文件读以外,类似于TEXTREAD。

两个函数可以用许多参数来改变其具体的工作方式,他们返回读入指定输出的数据。他们有效的提供给你一个 “两全其美”的方法,因为他们可以用一个命令读入混合的ASCII和数值数据(high level routines的做法),并且你可以改变他们以匹配你特定的应用(如同low level routines做到的)。例子:

Example 1: Using TEXTREAD to read in an entire file into a cell array

% This command reads in the file fft.m into the cell array, file 
   
file = textread('fft.m','%s','delimiter','/n','whitespace',''); 
    

Example 2: Using STRREAD to read the words in a line

% This command uses the cell array created in Example 1 to 
   
% read in each word of line 
   
    28 in
    'file' to a cell array, words
   
words = strread(file{28},'%s','delimiter','') 
    

Example 3: Using TEXTREAD to read in text and numeric data from a file with headers

% This command skips the 2 header lines at the top of the file
   
% and reads in each column to the 4 specified outputs
   
[c
    
     1 c
    
    
     2 c
    
    
     3 c
    4] = textread('sample_file2.txt','%s %s %s %s','headerlines',2) 
    

Example 4: Using TEXTREAD to read in specific rows of text and numeric data from a file

% This command reads in rows B and C of the file. The 'headerlines'
   
% property is used to move down to the desired starting row and the 
   
% read operation is performed 2 times 
   
[c
    
     1 c
    
    
     2 c
    
    
     3 c
    4] = textread('sample_file2.txt',... 
    
'%s %s %s %s',2,'headerlines',4) 
    

Example 5: Using TEXTREAD to read in only the numeric data from a file containing text and numbers

% This command reads in only the numeric data in the file. The
   
% 'headerlines' property is used to move down to the first row 
   
% of interest and the first column of text is ignored with the 
   
% '*'  operator 
   
[c
    
     2 c
    
    
     3 c
    4] = textread('sample_file2.txt','%*s %d %d %f','headerlines',3) 
    

DLMREAD/DLMWRITE/CSVREAD

DLMREAD 和 DLMWRITE函数能够读写分隔的ASCII data,而不是用low level routines。他们比low level routines容易使用,Low level routines用几行代码实现的功能可以用DLMREAD/DLMWRITE简化成一行。

CSVREAD用来读分隔符是逗号的文件,是DLMREAD的特殊情况。当读空格和Tab分隔的电子数据表文件时,DLMREAD特别有用。以'sample_file.txt'为例:

 Example 1: Using DLMREAD to read in a file with headers, text, and numeric data

% This reads in the file 'sample_file2.txt' and creates a matrix, D,
   
% with the numeric data this command specifies a white space as the
   
% delimiter of the file 
   
D = dlmread('sample_file.txt','') 
    

Example 2: Using DLMREAD to extract the first 3 columns of the last 3 rows

% This reads in the first 3 columns of the last 3 rows of
   
% the data file 'sample_file.txt'into the matrix, D_partial.
   
% 读文件 'sample_file.txt' 前3列后3行,到矩阵D_partial.
   
D_partial = dlmread('sample_file.txt','',[2 0 4 2]) 
    

Example 3: Using DLMWRITE to write a comma delimited file

% This creates a file called 'partialD.txt' that consists of 
   
% the first 3 columns of the last 3 rows of data where each
   
% element is separated by a comma 
   
dlmwrite('partialD.txt',D_partial,',') 
    

注意: 保证DLMREAD and DLMWRITE指定范围的指标从0开始,而不是从1开始。

WK1READ/WK1WRITE

WK1READ 用来读Lotus123 电子数据表文件的数据;WK1WRITE用来写矩阵到Lotus123 电子数据表文件。

XLSREAD

XLSREAD用来读Excel的数值和文本数据。

下面的解决方案提供High Level Routines的附加信息:

如何使文件头中的名字s成为载入变量s的名字s?
如何读入ASCII分隔的有头的数据文件?
如何读逗号分隔的有数据缺失的ASCII 文?
如何使用LOAD and SAVE命令的the functional form?
如何导出a cell array containing double arrays 到ASCII文件格式?
当用导入向导导入二进制文件时,为何MATLAB crash?

MATLAB——文件I/O大全(1) MATLAB——文件I/O大全(1)低级文件I/O指令 低级文件I/O指令与C语言里的I/O类似,命令格式类似 命令 说明 命令 说明 fopen 打开文件或获取已打开文件的信息 fscanf 按指定格式读入文件中数据 fclose 关闭文件 fprintf 按指定格式将数据写回文件 fread 以二进制方式读入文件中的数据 fwrite 阅读详情

相关推荐

MATLAB基础应用精讲-【基础知识篇】文件I/O

Matlab 应用中常需要实现Matlab 与其他应用程序的数据共享,即需将数据文件读入Matlab 进行有效的数据处理,然后将Matlab 处理好的数据保存为数据文件,以便其他应用程序所使用。Matlab 支持多种文件格式的输入和输出,如.dat 、.txt 、.mat 、.bmp 等。在实际进行数据文件的I/ O 时常出现错误,本文详细讨论Matlab 中数据文件I/ O 的实现方法,并给出每种方法的具体实例。所有的数据文件I/ O 操作文件都在Matlab 中,无需安装专门的工具箱。

qq_36130719的博客 512

Matlab的I/O文件操作使用技巧和总结:

Matlab的I/O文件操作使用技巧和总结:

cherry4500的博客 5551

MATLAB 中文件的 I/O 操作 —— fopen 操作

fopen是 MATLAB 中用于打开文件的核心函数,它为后续的文件读写操作提供文件标识符。通过fopen,可以指定文件路径、打开模式(如只读、写入、追加等)以及文件编码格式。主要特点:支持多种文件打开模式,如只读 ('r')、写入 ('w')、追加 ('a')、二进制读写 ('b') 等。可以打开文本文件、二进制文件、CSV 文件等。可以指定文件编码格式,如'UTF-8'等。fopen是 MATLAB 中文件 I/O 操作的核心函数,掌握其使用方法对于处理各种文件操作至关重要。通过fopen。

走向CTO的路上... 964

Matlab第三课:变量与档案存储

  目标: 变量:string,structure,cell 数据存储 一、变量  uint8的含义: u:无符号的意思 int:整形 8:bit,8bit 变量类型转换: String 变量:char(一个字符) 将字符放在单引号中 一个字符在ASCii中使用0-255来表示 变量:string(多个字符) 用单引号将一串字符包起来,就是字符 s1...

励志的小胡子 587

Matlab:使用低级 I/O 导入文本数据文件

Matlab:使用低级 I/O 导入文本数据文件

希望我的博客,能帮上你解决学习中工作中所遇到的问题 388

手把手教你学 MATLAB专栏(2.4)--文件 I/O 功能

文件 I/O 操作是指在程序中读取和写入文件中的数据。MATLAB 提供了多种文件 I/O 函数,支持文本文件、二进制文件、Excel 文件、图像文件等多种文件格式。通过以上介绍,你应该已经掌握了 MATLAB 的文件 I/O 功能,包括文本文件、二进制文件、Excel 文件、图像文件和 HDF5 文件的读取和写入。这些功能将帮助你更高效地处理和管理不同类型的数据文件。如果你有任何问题或建议,欢迎随时留言。祝你学习愉快,早日成为 MATLAB 的高手!

MHD0815的博客 639

MATLAB程序i,MATLAB文件I/O指南(3)高级文件I/O程序

2、高级文件I/O程序(High Level Routines)High level routines包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程。举个例子,如果你有一个包含数值和字母的文本文件(text file)想导入MATLAB,你可以调用一些low level routines自己写一个函数,或者是简单的用函数。使用high level routines的关键是:文件必...

weixin_35080040的博客 206

16.matlab中各种文件的I/O操作1——load/save

FPGA教程目录 MATLAB教程目录 --------------------------------------------------------------------------------------- 在matlab编写算法过程中,经常需要对各类文件进行读写操作,在本课程,将对一些常见格式的文件读写方法进行介绍。 save load函数可以将mat格式的数据进行读取,存放到matlab的workspace中,save函数可以将workspace中的变量保存...

FPGA/MATLAB学习教程/源码/项目合作开发 2587

matlab 文件读取I/O操作

Matlab程序可以看作数据处理器,该处理器从外部源(文件,网络,磁盘等)读入数据,并将数据处理结果输出到指定设备(文件,网络,磁盘等),即I/O操作,在matlab中提供了许多读取和写入文件的函数,通过这些函数可以控制I/O操作。 利用save命令保存工作区域或工作区任何指定的文件,文件名为matlab.mat,mat文件可以通过load命令再次导入工作区。 2.底层文件基本I/O操作 matl...

辛勤的小蜜蜂! 1488

手把手教你用RV1103+SC3336摄像头DIY一个离线人脸门禁原型

本文详细介绍了如何利用RV1103芯片和SC3336摄像头构建离线人脸门禁系统。从硬件选型到算法优化,再到业务逻辑实现,提供了完整的DIY指南。重点讲解了RetinaFace和FaceNet算法在嵌入式系统中的移植与调优,帮助开发者快速实现高效、隐私安全的门禁解决方案。

weixin_26905487的博客 512

从D触发器到8位SAR ADC:Cadence Virtuoso完整设计仿真指南

逐次逼近寄存器型模数转换器(SAR ADC)是混合信号集成电路中的基础架构,其核心是一个由D触发器构成的时序状态机。在数字电路设计中,D触发器常用于数据锁存、移位寄存和时钟分频,而在SAR ADC中,它恰好承担了节拍发生与结果寄存的双重角色。理解D触发器的工作机制,是掌握逐次逼近逻辑的关键前提。工程实践中,借助Cadence Virtuoso平台,可以从门级搭建SAR逻辑,并结合动态比较器与电荷重分配电容DAC,完成从原理图到瞬态仿真的全流程验证。通过FFT分析计算SNDR与ENOB,能够量化评估ADC的动

weixin_29178069的博客 285

Matlab-文件读写操作

1 save命令 保存当前 MATLAB 工作区内的数据到一个硬盘文件 格式:save filename var1 var2 var3 filename 代表你要保存变量的那个文件,var1,var2 等是要保存的变量。在默认情况下,这个这个文件的扩展名为‘mat’,我们称之为 MAT 文件。如果在 filename 后面无变量,则工作区的所有内容将会被保存。 可以创建.mat文件,也可以创建.dat文件 % create an input array from 0 to 10 x=0:0.

qq_41955225的博客 6724

Matlab信号处理——基于BP神经网络的调制信号分类与识别

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!对信号进行采样和处理,得到了一系列特征参数,包括幅度均值、频率峰值、频率平方均值以及相位标准差、修正后的相位标准差。

小嘤熊的博客 1309

MATLAB文件I/O指南(2)MATLAB中的文件I/O介绍

1、MATLAB中的文件输入/输出介绍支持的文件格式 MATLAB可读入的文件格式以及用来读取的函数:(所有文件I/O程序不需要特殊的工具箱)(可在MATLAB help 里搜索Supported File Formats得到下表) File Format

HateCode的胡言乱语 3571

Linux内核4.14版本——drm框架分析(1)——drm简介

drm框架分析

yangguoyu8023的博客 1万+

uniapp - 超详细 H5 网页利用 uni.downloadFile 下载 URL 文件流并调用浏览器下载功能效果,前台通过请求后端接口获取文件并下载保存到本地(支持电脑PC与手机移动端H5)

uniapph5网页下载文件,uniapp网站下载文件流,uniapp的移动端h5实现接口url文件下载,uniapph5页面在浏览器中如何下载指定url文件流文件并保存到本地,uniapp移动端h5调用后端接口保存文件到本地,uniapph5通过下载后获得临时路径怎么让浏览器弹出下载,uniapp怎么请求接口下载到文件,得到Blob临时路径对象后如何下载到本地,浏览器怎么下载blob对象,uniapp二进制文件流下载,uniapph5中的文件流下载和指定的url下载详细教程,uniappapp移

🏆 前端领域优质创作者 1万+

MATLAB中提高fwrite和fprintf函数的I/O性能

提高fwrite和fprintf函数的I/O性能 http://www.matlabsky.com/thread-34861-1-1.html 今天我们将讨论下著名的fwrite(fprintf)函数,它们是用来进行二进制(文本)文件写入操作的。由于fwrite函数是底层I/O函数,且使用十分频繁,很多用户会质疑,它怎么可能还有性能提升的空间,要是有MathWorks早就更新了。 ...

weixin_33738555的博客 2011

基于Python的船舶AIS数据爬取与分析:从数据采集到可视化实战

本文详细介绍了如何使用Python构建一个完整的船舶AIS数据爬取与分析系统。文章从AIS系统的基本原理讲起,逐步深入到数据采集、存储、清洗、分析和可视化的全流程。我们将使用最新的Python技术栈,包括aiohttp异步爬虫、MongoDB存储、Pandas数据处理以及Pydeck三维可视化等。本文提供了完整的代码实现,并探讨了在实际应用中可能遇到的问题及其解决方案。关键词:AIS数据、Python爬虫、异步IO、数据可视化、海事分析。

2201_76125261的博客 812

matlab io函数,MATLAB文件的I/O函数操作

本节介绍 MATLAB 中的 10 种文件 I/O 的操作函数。save 函数save 函数将工作区中的变量保存到硬盘上,用 save 命令所形成的文件可以是双精度二进制格式 MAT 文件,也可以是 ASCII 文件。save 函数的语法为:savesave('filename')save('filename', 'var1', 'var2', …)save('filename', '-struc...

weixin_42137723的博客 920

机器人中的数值优化(十二)——带约束优化问题简介、LP线性规划

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 3852

【PowerBI专栏】PowerBI导入MYSQL数据库

本文介绍了在PowerBI中连接MySQL数据库的方法。首先需要下载并安装MySQL官方.NET连接驱动(推荐8.4.0版本),安装完成后重启PowerBI。连接时需填写服务器IP和数据库名称等必填参数。文章详细说明了连接配置步骤,包括账户设置、数据表选择以及可能遇到的数据格式转换问题处理。最后指导用户完成数据清洗后进入PowerPivot进行后续计算。特别提醒最新9.4版本可能存在兼容性问题,建议使用稳定的8.4版本连接器。

技术与管理的平衡木- 697

文件I/O

高级文件I/O操作 数据输入,是指从磁盘文件或剪辑板中获取数据,加载到matlab工作空间;数据输出,是指将matlab工作空间的变量保存到文件中 文件I/O函数 Load 加载到工作区 Save 保存工作区 fopen 打开文件 fclose 关闭文件 fread 从文件中读取二进制数据 fwrite 把二进制数据写入文件 fscanf 从文件中读取格式化数据 fprintf 把格式化数据写入文件 fgetl 读取文件的一行,忽略换行符 fgets 读取文件的一行,不忽略换行符

weixin_47642634的博客 207

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

matlab读取i o数据文件,Matlab 的数据文件读取

Matlab 的数据文件I/ O 的实现方法0 引言Matlab 是一个功能强大的计算机辅助设计软件,被称为“草稿纸式的科学计算语言”,它具有强大的符号、数值计算、矩阵运算以及图形显示的功能,它被广泛地应用在数字信号处理、自动控制、图像处理、神经网络、优化设计、模糊逻辑、仿真、小波分析等方面。Matlab 应用中常需要实现Matlab 与其他应用程序的数据共享,即需将数据文件读入Matlab 进行...

weixin_39554172的博客 523

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

matlab中feof,MATLAB文件的I/O函数操作

本节介绍 MATLAB 中的 10 种文件 I/O 的操作函数。save 函数save 函数将工作区中的变量保存到硬盘上,用 save 命令所形成的文件可以是双精度二进制格式 MAT 文件,也可以是 ASCII 文件。save 函数的语法为:savesave('filename')save('filename', 'var1', 'var2', …)save('filename', '-struc...

weixin_28896255的博客 606

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

函数式文件matlab,MATLAB文件的I/O函数操作

本节介绍 MATLAB 中的 10 种文件 I/O 的操作函数。save 函数save 函数将工作区中的变量保存到硬盘上,用 save 命令所形成的文件可以是双精度二进制格式 MAT 文件,也可以是 ASCII 文件。save 函数的语法为:savesave('filename')save('filename', 'var1', 'var2', …)save('filename', '-struc...

weixin_31998661的博客 540

计算机网络 | I/O模型介绍

介绍五种IO模型。

仅以此博客记录日常学习工作中所思所得,水平有限,难登大雅,万望海涵。 1046
上一篇: MATLAB文件I/O指南(2)MATLAB中的文件I/O介绍
下一篇: 应付作业
HateCode
博客等级 码龄20年 25粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值