转 matlab的各种数据读取(txt,dat,mat等格式)文件打开关闭
Matlab 的数据文件读取

Matlab 的数据文件I/ O 的实现方法0 引言Matlab 是一个功能强大的计算机辅助设计软件,被称为“草稿纸式的科学计算语言”,它具有强大的符号、数值计算、矩阵运算以及图形显示的功能,它被广泛地应用在数字信号处理、自动控制、图像处理、神经网络、优化设计、模糊逻辑、仿真、小波分析等方面。
Matlab 应用中常需要实现Matlab 与其他应用程序的数据共享,即需将数据文件读入Matlab 进行有效的数据处理,然后将Matlab 处理好的数据保存为数据文件,以便其他应用程序所使用。
Matlab 支持多种文件格式的输入和输出,如.dat 、.txt 、.mat 、.bmp 等。
在实际进行数据文件的I/ O 时常出现错误,本文详细讨论Matlab 中数据文件I/ O 的实现方法,并给出每种方法的具体实例。
所有的数据文件I/ O 操作文件都在Matlab 中,无需安装专门的工具箱。
数据文件I/ O 程序可分为两种基本类型:低级和高级。
高级包括一些专门的函数以支持特定格式的读和写,相对而言低级则比较灵活。
1 高级数据文件I/ O 方式命令高级数据文件I/ O 命令主要有Load 和Save 。
Save 可以将Matlab 变量以ASCII 码格式或MAT存储, Load 可以读ASCII 码格式的变量或MAT 文件到Mat2lab 工作区。
这两条命令的使用比较简单, (为便于读者可直接将以下文本输入计算机运行,注释采用英文) 如:%This file demonstrates the behavior of LOAD and SAVEclear all%Clear all variablesx = 5 ;x2 = 10 ; %Create x and x2whos %To ,display the variables in workspacepause %Pause so as to observesave xdata x%Save only x into xdata. matclear all%Clear all variablesload xdata%Load xdata. matwhos %Note that x is backpausex2 = 10 ; %Recreate x2whospausesave xdata x x2%Now save using a wild cardclear all%Clear all variablesload xdata%Load xdata. matwhos使用Load 和Save 还可以实现一次读多个文件或将数据存入多个文件,以Save 命令为例(Load 类似) ,程序如下:a = rand(6) ; %make a (6 3 6) random numberfilename = ['a1.txt';'a2.txt';'a3.txt';'a4.txt';'a5.txt';'a6.txt'; ] ; %list your file namesfor i=i:1ength(a)temp = a(:,i) ;save (filename (i , :) ,'temp''-ascii') ;%save to the specified fileenddlmread 和teatread 函数可以实现读入格式化的ASCII 码数据而不使用低级命令。
Matlab教程文件打开关闭

二进制文件为非文本文件 常见扩展名:“COM”、“EXE” 、“BMP” 、
“WAV”
3
MATLAB中基本的低级文件I/O指令:
1.打开和关闭文件
fopen、fclose
2.格式读写
fprintf、fscanf、fgetl、fgets
3.非格式读写
fread、fwrite
4.文件定位和状态
mexPrintf("Hello Matlab World!"); }
22
8.2.2 MATLAB计算引擎
MATLAB的计算引擎应用就是利用MATLAB 提供的一组接口函数,在用户开发的C/C++语 言应用程序中,通过某种通信机制后台调用 MATLAB应用程序以完成复杂的系统任务。
23
例8-11
8
8.1.3 文件定位和文件状态
1.feof函数:检测文件是否已经结束
status=feof(fid)
2.ferror函数:用于查询文件的输入、输出错误信息
msg=ferror(fid)
3.frewind函数:使位置指针重新返回文件的开头
frewind(fid)
4.fseek函数:设置文件的位置指针
mxArray *matGetVariable(MATFile *mfp,const char *name)
4.写入数据──matPutVariable
int matPutVariable(MATFile *mfp, const char *name,const mxArray *mp)
27
扩展阅读
15
8.1.6 图像、声音文件的读写
1.imread函数:从文件中读入图像
MATLAB文件各种操作方法(全)

1.1 文件的打开和关闭1.1.1 文件的打开fopen ('filename', 'mode')mode格式有:‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。
该文件必须已存在。
‘w’:打开后写入数据。
该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。
先读后写。
该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。
文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。
文件不存在则创建。
如果rt表示该文件以文本方式打开,如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
Fopen函数两个返回值:1、一个是返回一个文件标识(file Identifier),它会作为参数被传入其他对文件进行读写操作的命令,通常是一个非负的整数,可用此标识来对此文件进行各种处理。
(如果返回的文件标识是–1,则代表fopen无法打开文件,其原因可能是文件不存在,或是用户无法打开此文件权限);2、另一个返回值就是message,用于返回无法打开文件的原因;例:1-1[f,message]=fopen('fileexam1', 'r')if f==-1disp(message); %显示错误信息end(若文件fileexam1不存在,则显示如下信息。
Cannot open file.existence?permissions?memory?)例:1-2[f,message]=fopen('fileexam2', 'r');if f==-1disp (message); %显示错误信息elsedisp(f);end若文件fileexam2存在,则返回f值。
1.1.2文件的关闭Fclose(f)F为打开文件的标志,若若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无法成功关闭该文件。
matlab读取文本文件的几种方法

matlab读取文本文件的几种方法在MATLAB中,有多种方法可以读取文本文件。
以下是其中几种常用的方法:1. `fscanf`:这个函数可以读取符合特定格式的文本文件。
例如,如果文本文件中的每一行都是一个浮点数,可以使用以下代码读取文件:```matlabfileID = fopen('','r'); % 打开文件data = fscanf(fileID,'%f\n'); % 读取数据fclose(fileID); % 关闭文件```2. `textscan`:这个函数可以读取任意格式的文本文件,并返回一个单元数组,其中的每个单元包含一行数据。
例如:```matlabfileID = fopen('','r'); % 打开文件data = textscan(fileID, '%f'); % 读取数据fclose(fileID); % 关闭文件```3. `readmatrix`:这个函数可以读取包含数字的文本文件,并将其作为矩阵返回。
例如:```matlabdata = readmatrix(''); % 读取数据```4. `readtable`:这个函数可以读取包含表格数据的文本文件,并将其作为表格返回。
例如:```matlabdata = readtable(''); % 读取数据```以上方法都是基于文本文件的,如果需要读取的是CSV文件,可以使用MATLAB内置的`readtable`或`readmatrix`函数。
例如:```matlabdata = readtable(''); % 读取CSV文件作为表格```或者:```matlabdata = readmatrix(''); % 读取CSV文件作为矩阵```。
matlab文件操作及读txt文件

matlab文件操作及读txt文件matlab文件操作文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。
MATLAB提供了一系列低层输入输出函数,专门用于文件操作。
1、文件的打开与关闭1)打开文件在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。
fopen函数的调用格式为:fid=fopen(文件名,‘打开方式’)说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。
文件名用字符串形式,表示待打开的数据文件。
常见的打开方式如下:λ‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。
该文件必须已存在。
λλ‘w’:打开后写入数据。
该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。
先读后写。
该文件已存在则更新;不存在则创建。
λλ‘a’:在打开的文件末端添加数据。
文件不存在则创建。
λ‘a+’:打开文件后,先读入数据再添加数据。
文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
2)关闭文件文件在进行完读、写等操作后,应及时关闭,以免数据丢失。
关闭文件用fclose函数,调用格式为:sta=fclose(fid)说明:该函数关闭fid所表示的文件。
sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。
如果要关闭所有已打开的文件用fclose(‘all’)。
2、二进制文件的读写操作1)写二进制文件fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。
其调用格式为:COUNT=fwrite(fid,A,precision)说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。
Matlab中读取txt文件的几种方法

一、纯数据文件(没有字母和中文,纯数字)对于这种txt文档,从matalb中读取就简单多了例如test.txt文件,内容为“17.901 -1.1111 33.04517.891 -1.1286 33.04517.884 -1.1345 33.045”可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。
二、中英文和数据如test1.txt“你好欢迎来到振动论坛1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555”这样的文件怎么读入数据呢?方法有多种,现举两个比较简单实用的。
方法一:file/import data....../next/finish>> whosName Size Bytes Classdata 5x4 160 double arraytextdata 4x1 300 cell arrayGrand total is 54 elements using 460 bytes>> data1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555>> textdatatextdata ='你好''欢迎来到''振动论坛'''方法二:[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f 等。
Matlab文件读取总结

Matlab⽂件读取总结matlab的⽂件读取函数功能可以读取各种⽂件类型,如⽂本⽂件和⼆进制⽂件,如下表所⽰:函数功能(⽂件要求)textscan从⽂本⽂件或字符串读取格式化数据(⼀⾏中有整数,浮点数,字符串等)(读取已打开⽂件)xlsread读取Excel⽂件importdata从⽂件加载数据load将⽂件变量加载到⼯作区(常见的MAT⽂件,也可以是⽂本⽂件,如txt,dat等)dlmread将 ASCII 分隔的数值数据⽂件读取到矩阵(读取⽂本⽂件)textread同textread(不推荐⽤textread,改⽤textscan)csvread读取逗号分隔值 (CSV) ⽂件,读取已打开⽂件fscanf读取⽂本⽂件中的数据,读取已打开⽂件textscan⽤法:C = textscan(fileID,formatSpec)C = textscan(fileID,formatSpec,N) %按formatSpec读取⽂件数据N次,指定'headerlines'跳过指定⾏数举例:test.txtdaa fsds sds sdv1 3.4 5.6 7.82 4.5 6.7 3.43 4.5 5.6 3.5fileID = fopen(test.txt);C = textscan(fileID,'%d %f %f %f','headerlines',1); % %d有符号整数 %f双精度浮点数 %s读取以空⽩或分隔符分隔的⽂本fclose(fileID);得到的C是⼀个cell类型的数据。
textscan与textread的区别:1. textread不⽤先fopen那个⽂件,适⽤于格式统⼀的txt⽂件的⼀次性⼤批量读取。
⽽使⽤textscan函数之前需要先⽤fopen函数打开要读取的⽂件并返回句柄fid。
2. 其次textread读取某个⽂件后,下次再⽤textread读取这个⽂件时,还是会从⽂件头开始读取。
Matlab文件操作及读txt文件(fopen,fseek,fread,fclose)

Matlab文件操作及读txt文件(fopen,fseek,fread,fclose) matlab文件操作文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。
MATLAB提供了一系列低层输入输出函数,专门用于文件操作。
1、文件的打开与关闭1)打开文件在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。
fopen函数的调用格式为:fid=fopen(文件名,…打开方式‟)说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。
文件名用字符串形式,表示待打开的数据文件。
常见的打开方式如下:λ…r‟:只读方式打开文件(默认的方式),该文件必须已存在。
…r+‟:读写方式打开文件,打开后先读后写。
该文件必须已存在。
λλ…w‟:打开后写入数据。
该文件已存在则更新;不存在则创建。
…w+‟:读写方式打开文件。
先读后写。
该文件已存在则更新;不存在则创建。
λλ…a‟:在打开的文件末端添加数据。
文件不存在则创建。
…a+‟:打开文件后,先读入数据再添加数据。
文件不存在则创建。
另外,在这些字符串后添加一个“t”,如…rt‟或…wt+‟,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen 函数默认的打开方式。
2)关闭文件文件在进行完读、写等操作后,应及时关闭,以免数据丢失。
关闭文件用fclose函数,调用格式为:sta=fclose(fid)说明:该函数关闭fid所表示的文件。
sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。
如果要关闭所有已打开的文件用fclose(…all‟)。
2、二进制文件的读写操作1)写二进制文件fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。
其调用格式为:COUNT=fwrite(fid,A,precision)说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Name
Size
Bytes Class Attributes
data
3x3
72 double
tex tdata
4x1
314 cell
2. 使用函数来读取文本数据
若要在命令行或在一个 M 文件中读取数据,必须使用 MATLAB 数据函数,函数的选择则是依据文本文件中数据的格式。
而且文本数据格式在行和列上必须采取一致的模式,并使用文本字符来分隔各个数据项,称该字符为分隔符或列分隔
0.3445 0.8433 0.7865 0.7562 0.4233 0
/blog-907194-688272.html
征。
/blog-907194-688272.html
2/12
2014年4月29日
表2-2 读取函数的比较 函数 数据类型 分隔符 返回值 c sv read 数值数据 仅cooma 1 dlmread 数值数据 任何字符 1 fscanf 字母和数值 任何字符 1 load 数值数据 仅space 1 tex tread 字母和数值 任何字符 多返回值
符。分隔符可以是space、comma、semicolon、ab或其他字符,单个的数据可以是字母、数值字符或它们的混合形式。
文本文件也可以包含称之为头行的一行或多行文本,或可以使用文本头来标志各列或各行。在了解要输入数据的格式之
后,便可以使用 MATLAB 函数来读取数据了。若对 MATLAB 函数不熟悉,可从表2-2中了解几个读取函数的一些使用特
图2-2 使用模板查看各变量数据 在默认情况下,导入模板将文件中所有的数值数据放在一个变量中;若文件包含文本数据,则模板将它们放在另外一个 变量中;若文件包含行或列,模板也将它们作为各自独立的变量分别称为行头和列头。 当所有导入模板创建好数据后,使用whos命令可以查看工作空间的变量。 >> whos
魏萌
加为好友
给我留言
打个招呼
发送消息
作者的其他最新博文 全部
• [转载]转 如何提高英文的科研 写 • [作转能载力]M(A施 TL一AB公绘)图功能 • 关于grads加权平均/求和的问 题 • [转载] 蒲慕明教授的e-Mail • action!
热门博文导读
全部
• 关于废除各高校马克思主义… • 答:毕业四年,感伤、失落… • 千万不要与猪摔跤! • 失落的古城池之七:哥伦比… • 学术2.0:从教学学术到社会… • 赤脚院士、科学泰斗
/blog-907194-688272.html
1/12
2014年4月29日
科学网—[转载]转 matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭 - 魏萌的博文
end 若文件fileex am1不存在,则显示如下信息。 Cannot open file.existence?permissions?memory?...
Name
Size
By tes
Class Attributes
data
3x3
72
double
my _data
3x4
96 double
tex tdata
4x1
314
cell
此时可以查看与该文件同名的变量的值
>> my_data
my_data =
0.3242 0.4324 0.3455 0.6754 0.4566 0.9368 0.9892 0.9274 0.4658 0.2832 0.9373 0.8233 若想将工作空间的变量以该文件名命名,则可以使用函数形式的load,下面的语句将文件导入工作空间并赋给变量A A=load('my _data.tx t'); 4. 读取有分隔符的ASCII数据文件 如果数据文件不使用空格符而是使用逗号或是其他符号作为分隔符,用户可以选择多个可用的导入数据函数。最简单的 便是使用函数dlmread。 举个例子来说,一个名为lcode.dat的数据文件,数据内容由逗号分隔。 0.3445,0.8433,0.7865 0.7562,0.4233,0 要把该文件的全部内容读入阵列A,只须输入如下命令: >> A=dlmread('lcode.dat',',') 即可以把数据文件中使用的分隔符作为函数dlmread的第二个参数。 注意: 即使每行的最后一个数据后面不是逗号,dlmread函数仍能正确读取数据,因为dlmread忽略了数据之间的空格符。因 此,即使数据为如下格式,前面的dlmread命令仍能正常工作。 A=
相关博文
• 该做的和不该做的- LetPub … • 基于手性D-氨基酸形成机制… • 关于地沟油的三种检测方法… • 程序猿的记忆唤醒 • 新的荧光探针可以特异的识… • 做一个无愁河边的浪荡汉子
fopen函数有两个返回值,一个是返回一个文件标志(file Identifier),它会作为参数被传入其他对文件进行读写操作的命 令,通常是一个非负的整数,可用此标识来对此文件进行各种处理。如果返回的文件标识是–1,则代表fopen无法打开文 件,其原因可能是文件不存在,或是用户无法打开此文件权限。另一个返回值就是message,用于返回无法打开文件的原 因。为了安全起见,最好在每次使用fopen函数时,都测试其返回值是否为有效值。 下面以脚本m文件为例来声明文件的打开。 例2-1 %exam1.m [f,message]=fopen('fileexam1', 'r') if f==-1 disp (message); %显示错误信息
注册 | 登录
博客首页
博文
动态
微博
博文
相册
主题
分享
好友
留言板
[转载]转 matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
已有 11703 次阅读 2013-等 matlab
MATLAB提供了多种方式从磁盘读入文件或将数据输入到工作空间,即读取数据,又叫导入数据;将工作空间的变量存储 到磁盘文件中称为存写数据,又叫导出数据。至于选择哪种机制,则根据下面两个因素决定: ● 用户所执行的操作是导入数据还是导出数据; ● 数据的格式为文本格式、二进制格式还是如HDF之类的标准格式。 将数据导入MATLAB中最容易的方法就是使用导入数据模板(Import Wizard),使用该模板时不需要知道数据的格式,只需 指定包含这些数据的文件,然后导入模板会自动处理文件内容。 本章重点内容如下: ● 文件的打开和关闭 ● 文本文件的读取 ● 存写ASCII数据 ● 二进制数据的读取 ● 二进制数据的存写 ● 使用I/O文件函数进行数据读写 ● MAT 文件的读写
2014年4月29日
构建全球华人科学博客圈 返回首页
科学网—[转载]转 matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭 - 魏萌的博文
微博
RSS订阅 帮助
mynightwish的个人博客 分享
ht t p://blog.scie nce ne t .cn/u/mynight w ish
english math physic joe 80 90 60 susan 78 98 88 rob 67 90 89
图2-1 将数据通过模板导入 在图2-1中,导入模板已辨认space字符,把它作为文件中数据的分隔符,并建立了两个变量:data(包含文件中所有数值 数据)和tex tdata(包含文件中所有文本数据)。 当导入模板正确导入文件中的数据后,就会显示它所建立的变量。要选择一个变量来导入数据,可单击它名称后面的复 选框。在默认情况下,所有变量都会被选中。在导入对话框的右面显示了导入模板建立的变量内容。要查看其他变量, 只需要单击该名称。在选择好要导入的变量后,单击Nex t按钮,如图2-2所示。
科学网—[转载]转 matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭 - 魏萌的博文
3. 读取数值文本数据 若用户的数据文件只包含数值数据,则可以使用许多MATLAB函数,这取决于这些数据采用的分隔符。若数据为矩形形 状,也就是说,每行有同样数目的元素,这时可以使用最简单的命令load(load也能用于导入MAT文件,该文件为用于存储 工作空间变量的二进制文件,如果文件名后缀是.dat,则MATLAB会以MAT文件格式进行读取)。 例如,文件my _data.tx t包含了两行数据,各数据之间由spac e字符隔开。 当使用load时,它将读取数据并在工作空间中建立一个与该文件同名的变量,但不包括扩展名。 >>load my_data.txt; 调用whos命令查看工作空间的变量。 >> whos
例2-2 %exam2.m [f,message]=fopen('fileexam2', 'r'); if f==-1 disp (message); %显示错误信息 else
disp(f); end 若文件fileex am2存在,则返回f值。 2.1.2 文件的关闭 一旦完成文件的读写,最好关闭文件,以便对其进行其他操作。这时就可以使用fclose函数来关闭文件,其适用语法如 下。 fclose(f) 其中f为打开文件的标志,若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无法成功关闭该 文件。一般来说,在完成对文件的读写操作后就应关闭它,以免造成系统资源浪费。此外,需注意的是,打开和关闭文 件都比较耗时,因此为了提高程序执行效率,最好不要在循环体内使用文件。 若要一次关闭打开的所有文件,可以使用下面的命令: fclose all 2.2 文 本 数 据 虽然MATLAB自带的MAT文件为二进制文件,但为了便于和外部程序进行交换以及方便查看文件中的数据,也常常采用文 本数据格式与外界进行数据交换。在文本格式中,数据采用ASCII码格式,可以表示字母和数字字符。ASCII文本数据可以 在文本编辑器中查看和编辑。MATLAB提供多种函数能够进行文件读写,这些函数都是MATLAB的一部分,不需要额外的 工具箱支持。 2.2.1 从文本文件中读取数据 1.使用导入模板来读取数据 使用导入模板来读取数据,需按以下步骤进行: (1) 选择File→Import Data选项,然后弹出一个文件选择对话框;也可以使用uiimport函数来打开导入数据模板。 (2) 在文件选择对话框中选择想导入数据的文本文件,然后单击Open按钮,导入数据模板就会打开该文件并准备处理其 内容。 (3) 指定用于分开单个数据的字符,该字符称为分隔符或列分隔符。在多数情况下可以用导入模板来设定分隔符。 (4) 选择要导入的变量。在默认情况下,导入模板将所有的数值数据放在一个变量中,而将文本数据放在其他变量中。 (5) 单击Finish按钮完成数据的导入。 当使用导入模板来打开一个文本文件时,在导入模板对话框的预览区仅显示原始数据的一部分,通过它,用户可以验证 该文件中的数据是否为所期望的。导入模板也根据文件中的数据分隔符来对导入的数据进行预处理。在导入模板中打开 工作区中的grade.tx t文件。