(仅供参考)matlab读取文本文件技巧
- 格式:pdf
- 大小:294.95 KB
- 文档页数:8
MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)(转自matlab技术论坛)振动论坛原版主eight的经典贴MATLAB对于文本文件(txt)进行数据读取的技巧总结(经典中的经典)由于本帖内容较多,部分转自他人的心得,因此,凡转贴的地方仅用“----转----”标注,原作者略去,在此对所有原作者表示感谢!特别说明:由于大家在 I/O 存取上以 txt 文件为主,且读取比存储更麻烦(存储的话 fwrite, fprintf 基本够用),因此下面的讨论主要集中在“txt 文件的读取”上。
除了标注了“转”之外,其余心得均出于本人经验之结果,欢迎大家指正、补充。
一. 基本知识:--------------------------------------------------转----------------------------------------------------1. 二进制文件与文本文件的区别:将文件看作是由一个一个字节(byte) 组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。
这就是两者的区别;接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。
如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII码,而以按照二进制方式打开的话,则不会进行任何的translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。
譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。
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文件操作总结MATLAB是一种高级编程语言和交互式环境,主要用于数值计算、分析和可视化。
MATLAB也可以用于文件操作,包括读取、写入和修改文件。
下面是一些基本的MATLAB文件操作总结:1. 读取文件:使用`fopen`函数打开文件,使用`fread`或`fscanf`函数读取文件内容。
示例:```matlab`fileID = fopen('','r'); % 打开文件data = fread(fileID,'%f'); % 读取数据,假设文件包含浮点数fclose(fileID); % 关闭文件````2. 写入文件:使用`fopen`函数打开文件,使用`fwrite`或`fprintf`函数写入文件内容。
示例:```matlab`fileID = fopen('','w'); % 打开文件以写入fwrite(fileID,data); % 写入数据到文件fclose(fileID); % 关闭文件````3. 追加到文件:使用`fopen`函数以追加模式打开文件,然后使用`fprintf`或`fwrite`函数写入数据。
示例:```matlab`fileID = fopen('','a'); % 打开文件以追加数据fprintf(fileID,'%f\n',newData); % 写入新数据到文件fclose(fileID); % 关闭文件````4. 处理文本文件:使用文本编辑器打开并处理文本文件。
MATLAB中的字符串变量可以用来表示和处理文本数据。
5. 二进制文件操作:MATLAB也支持二进制文件的读取和写入。
这通常涉及使用特定的格式说明符(例如'%f'表示浮点数),以及考虑字节顺序(大端或小端)。
6. 文件和路径管理:MATLAB提供了许多用于管理文件和路径的函数,例如`dir`, `pwd`, `cd`, `readdir`, `delete`, `move`, `copy`, `exist`等。
matlabload读取txt用法在MATLAB中,可以使用load函数来读取TXT文件。
load函数有几种用法,可以根据数据的格式和要求进行选择。
一种常见的用法是将TXT文件中的数据加载到一个矩阵中。
假设有一个名为data.txt的TXT文件,它的内容如下:```12345678910```要将这个TXT文件中的数据加载到一个矩阵中,可以使用以下命令:```matlabdata = load('data.txt');```现在,变量data将包含从TXT文件中读取的数据,并以矩阵的形式存储。
在这个例子中,data将是一个2x5的矩阵,包含了文件中的数据。
有时,TXT文件中的数据可能以特定的分隔符分隔,如逗号(,)或制表符(\t)。
可以使用load命令的-ascii选项来指定要使用的分隔符。
假设有一个名为data.txt的文件,它的内容如下:```1,2,3,4,56,7,8,9,10```要将这个以逗号分隔的数据加载到一个矩阵中,可以使用以下命令:```matlabdata = load('data.txt', '-ascii', 'delimiter', ',');```现在,变量data将包含从TXT文件中读取的数据,并以矩阵的形式存储。
load函数也可以用来读取包含文本的TXT文件。
假设有一个包含文本的TXT文件,内容如下:```HelloWorld```要将这个TXT文件中的文本加载到一个字符串数组中,可以使用以下命令:```matlabtext = load('text.txt', '-ascii');```现在,变量text将包含从TXT文件中读取的文本,并以字符串数组的形式存储。
除了load函数,MATLAB还提供了其他函数来读取和处理TXT文件的数据,如fgetl、fscanf和textscan等。
如何在matlab中读取TXT数据文件文章来源:不详作者:佚名--------------------------------------------------------------------------------该文章讲述了如何在matlab中读取TXT数据文件.今天需要做个matlab读取txt文件,在网上收集了下,查到了几篇不错的,总结一下,方便大家(包括me)使用:下面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以。
function dataout=dataread(filein,fileout,line)fidin=fopen(filein,'r');fidout=fopen(fileout,'w');nline=0;while ~feof(fidin) % 判断是否为文件末尾tline=fgetl(fidin); % 从文件读行nline=nline+1;if nline==linefprintf(fidout,'%s\n',tline);dataout=tline;endendfclose(fidin);fclose(fidout); %%%%%%%%%%%%%%%%%%%%%%%%%%调用格式:dataout=dataread(filein,fileout,line)如果你的txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任意列的数据a=textread('ll.txt');t=a(1:43,4:10);1:43是1到43行,4:10是4到10列的数据,当然也可以只读一个数据,如果你的matlab没有textread函数,直接从mathworks网站下载就行。
根据txt文档不同种类介绍不同的读取数据方法转自:/youngbrave/blog/item/878db31fcd4f220f304e15bb.html 一、纯数据文件(没有字母和中文,纯数字)对于这种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的数据文件。
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等。
matlab读取.txt文件的方法如何使用MATLAB读取文本文件MATLAB是一种功能强大的数值计算和数据分析软件,也可以用于读取和处理文本文件。
读取文本文件是数据处理和分析中的常见任务,它能帮助我们获取和存储用于后续分析的重要数据。
在本文中,我们将提供一种详细的步骤,以通过MATLAB读取文本文件。
Step 1: 确定要读取的文本文件的路径和名称在使用MATLAB读取文本文件之前,首先需要知道要读取的文件的路径和名称。
可以使用以下两种方法之一来指定路径和文件名:方法一:使用相对路径相对路径是相对于MATLAB当前工作目录的路径。
MATLAB当前工作目录是指你当前正在使用的MATLAB文件所在的目录。
如果文本文件与当前工作目录中的MATLAB文件位于同一目录或其子目录中,则可以使用相对路径来指定文件路径。
相对路径使用'./'表示当前目录和'../'表示上一级目录。
方法二:使用绝对路径绝对路径是完整指定文件路径的方式。
通过使用绝对路径,你可以直接指定文件所在的文件夹和文件名来读取文件。
绝对路径可以直接从文件浏览器中复制并粘贴到MATLAB中。
Step 2: 使用fopen函数打开文本文件MATLAB中的fopen函数用于打开文件。
要打开文本文件,需要使用'rt'选项将文件以只读文本文件方式打开。
这样,MATLAB就可以正确解释文件中的每个字符。
下面是打开文本文件的示例代码:matlabfileID = fopen('path_to_file/filename.txt', 'rt');请将'path_to_file/filename.txt'替换为要读取的文本文件的实际路径和名称。
使用此命令将返回一个文件标识符fileID,它用于后续读取文件的步骤。
Step 3: 使用fgetl函数逐行读取文本文件一旦文件打开成功,我们可以使用MATLAB中的fgetl函数按行读取文本文件。
Matlab中的文件输入输出操作详解引言在Matlab编程中,文件输入输出操作是非常常见且重要的一部分。
无论是读取数据还是将结果保存至文件中,文件输入输出都是连接Matlab与外部环境之间的桥梁。
本文将详解Matlab中的文件输入输出操作,包括文件读取、文件写入、文件追加等方面的内容。
一、文件读取1. 读取文本文件在Matlab中读取文本文件非常简单。
通过使用`fopen`函数,我们可以打开一个文本文件,返回一个文件描述符。
然后,我们可以使用`fscanf`、`fgets`等函数逐行或逐个字符读取文件内容。
最后使用`fclose`函数关闭文件。
示例代码:```fid = fopen('data.txt', 'r');while ~feof(fid)line = fgetl(fid);disp(line);endfclose(fid);```2. 读取二进制文件与读取文本文件类似,读取二进制文件也需要使用`fopen`函数打开文件。
不同之处在于,我们使用`fread`函数以指定的格式读取文件内容。
同样,读取完毕后使用`fclose`函数关闭文件。
示例代码:```fid = fopen('data.bin', 'rb');data = fread(fid, 'double');fclose(fid);disp(data);```二、文件写入1. 写入文本文件想要将数据写入文本文件,我们可以通过`fopen`函数打开一个新的文件,并使用`fprintf`函数将数据进行格式化输出。
最后使用`fclose`函数关闭文件。
示例代码:```fid = fopen('result.txt', 'w');fprintf(fid, '%s\n', 'Hello, World!');fclose(fid);```2. 写入二进制文件与写入文本文件类似,写入二进制文件也需要使用`fopen`函数打开一个新的文件。
Matlab中的文本处理方法简介引言在当今信息爆炸的时代,文本数据已经成为我们生活中不可或缺的一部分。
然而,文本数据的处理却是一项极具挑战性的任务。
幸运的是,Matlab这一强大的数学工具箱为我们提供了丰富的文本处理方法,使得我们能够轻松地对文本数据进行分析和挖掘。
本文将为大家介绍几种常见的Matlab中的文本处理方法。
一、文本的读取和写入在进行文本处理之前,我们首先需要从文件中读取文本数据,并且在处理完之后,将结果写入到文件中。
Matlab提供了读取和写入文本数据的函数,如"readtable"和"writetable"等。
通过这些函数,我们可以轻松地将文本数据导入到Matlab中,并且对其进行处理和分析。
不仅如此,我们还可以将处理结果保存为文本文件,便于之后的应用和共享。
二、文本的预处理在进行文本分析之前,我们通常需要对文本进行预处理。
预处理包括去除噪声、标记化、分词、停用词去除、词干化等步骤。
Matlab中提供了许多函数和工具箱来帮助我们完成这些任务,如"strrep"、"regexp"、"tokenizedDocument"、"removeStopWords"等。
通过这些函数,我们可以方便地对文本进行预处理,为后续的分析和挖掘打下坚实的基础。
三、文本的转换在进行文本分析和挖掘之前,我们通常需要将文本数据转换为数值或者向量的形式,以便于计算和统计。
Matlab提供了多种文本转换的方法,如词袋模型、TF-IDF向量空间模型和词嵌入等。
通过这些方法,我们可以将文本数据转换为机器学习算法所需要的输入格式,从而进行进一步的分析和挖掘。
四、文本的特征提取文本的特征提取是文本分析和挖掘的关键步骤之一。
通过提取文本的特征,我们可以揭示出文本中的潜在信息和模式。
Matlab提供了许多特征提取的函数和工具箱,如词频矩阵、N-gram模型、主题模型等。
matlab中读取txt文件的几种方法嘿,朋友们!今天咱就来唠唠在 Matlab 里读取 txt 文件的那些门道儿。
你想想啊,txt 文件就像是一个藏着各种宝贝的小盒子,而 Matlab就是打开这个盒子的神奇钥匙。
那怎么用这把钥匙打开盒子呢?有一种方法就像是轻轻地敲开盒子盖儿,这就是使用 load 函数啦。
它能把 txt 文件里的数据一股脑儿地都给弄进来,简单直接,就像你口渴了直接拿起水杯就喝,爽快!还有呢,fopen 函数就像是找到盒子上的锁眼,然后用合适的工具去开锁。
通过它打开文件后,再用 fscanf 或者 fgetl 等函数来一点一点地把数据给“抠”出来,虽然稍微麻烦点,但能让你更精细地处理数据,就像雕刻一件艺术品一样。
再说说 textscan 函数吧,它就像是一个智能的分拣器,能把 txt 文件里的数据按照你设定的规则,整整齐齐地给分好类。
这可太方便啦,能让你快速地找到你想要的那部分数据,就好像在一堆杂物里一下子就找到了你心仪的那个小物件。
你说,这 Matlab 读取 txt 文件的方法是不是很有趣?就像在一个大宝藏里寻宝一样,不同的方法就是不同的寻宝路径。
咱再打个比方,这读取 txt 文件就像是去参加一场比赛,每种方法都是不同的战术。
有的战术简单粗暴,直接冲过去拿分;有的战术则需要精心布局,一点点地突破。
不管是哪种战术,只要能达到目的,那就是好战术,对吧?所以啊,当你在 Matlab 里遇到要读取 txt 文件的时候,可别犯愁,就想想咱说的这些方法,选一个最适合你的,然后大胆地去尝试。
就像那句话说的,“实践出真知”,只有自己试过了,才能真正体会到其中的乐趣和奥秘。
总之呢,Matlab 中读取 txt 文件的这几种方法各有各的好,各有各的用武之地。
你可得好好掌握它们,让它们成为你在数据处理世界里的得力助手!怎么样,是不是迫不及待地想去试试啦?。
转载,网上摘录)在使用MATL AB遇到问题时,在网上搜索到很多有用的知识,比起看帮助文件的英文要省力的多了matlab文件操作文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。
MATLAB提供了一系列低层输入输出函数,专门用于文件操作。
1、文件的打开与关闭1)打开文件在读写文件之前,必须先用fop en函数打开或创建文件,并指定对该文件进行的操作方式。
fopen函数的调用格式为:fid=fopen(文件名,‘打开方式’)说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。
文件名用字符串形式,表示待打开的数据文件。
常见的打开方式如下:‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。
该文件必须已存在。
‘w’:打开后写入数据。
该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。
先读后写。
该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。
文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。
文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fope n函数默认的打开方式。
2)关闭文件文件在进行完读、写等操作后,应及时关闭,以免数据丢失。
关闭文件用fc lose函数,调用格式为:sta=fclose(fid)说明:该函数关闭fi d所表示的文件。
sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。
如果要关闭所有已打开的文件用fclos e(‘all’)。
2、二进制文件的读写操作1)写二进制文件fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。
matlab中读取txt数据⽂件(txt⽂本⽂档)根据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>> datadata =1 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读取数据的⽅法1 textread函数textread不⽤先fopen那个⽂件,适⽤于格式统⼀的txt⽂件的⼀次性⼤批量读取。
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n','delimiter', ',','headerlines', 1);delimiter指出分隔符,读数据的时候会⾃动跳过分隔符。
headerlines, 跳过开头的⾏数2.textscan函数读取⽂本数据对于具有多⾏⽂字说明⽂本数据⽂件,最好的办法则是⽤textscan,或者fscanf读取。
filename='text.txt';fid=fopen(filename,'r');temp1=textscan(fid,'%s%s%s%s%s%f%f%s%f%s%s%s',,'HeaderLines',N1);fclose(fid);......3.fscanf函数——按⾏读取数据4. load——读取统⼀格式的数据⽂件今天利⽤textread读取若⼲个之前输出的纯数据⽂件(格式完全相同),第⼀个⽂件能顺利读取,第⼆个⼀直出错,提⽰如下:Trouble reading floating point number from file (row 1, field 1) ==> function ztd=otl_kokb(value)\nError in ==> textread at 176[varargout{1:nlhs}]=dataread('file',varargin{:});Error in ==> asr_otl_amplitudes3 at 13[vmf,csr,got,no,vlbi]=textread(filename,'%f %f %f %f %f');反复试验都⽊有解决,后来转⽽寻求load的帮助,⼀次通过,特记录下来:i=0;while ~feof(fid)i=i+1;otl_name=fgetl(fid);filename=strcat('D:\work\20101208\',otl_name);ztd=load(filename,'-ASCII');vmf=ztd(:,1); csr=ztd(:,2); got=ztd(:,3); no=ztd(:,4); vlbi=ztd(:,5);……end========先放着,回头整理=====================% trans5=c5;% pp5=trans5;% pp5(find(trans5>9999))=NaN;% trans5=pp5;============================。
初识MATLAB之⽂件读取初识MATLAB之⽂件读取 MATLAB的每⼀个脚本⽂件,⼏乎都涉及到⽂件的读写操作,我以⼏个案例来分析MATLAB的⽂件读取的基本操作。
1. 打开与关闭⽂件 打开⽂件的函数为fopen,关闭⽂件的函数为fclose。
这⾥将MATLAB中help帮助的内容拿出来介绍具体。
FID = fopen(FILENAME,PERMISSION) 打开⽂件FILENAME,由PERMISSION指定的模式: 'r' 打开⽂件进⾏阅读 'w' 打开⽂件写; 丢弃现有内容 'a' 打开或创建⽂件以供写作; 将数据附加到⽂件末尾 'r+' 打开(不创建)⽂件进⾏读写 'w+' 打开或创建⽂件进⾏阅读和写作; 丢弃现有内容 'a+' 打开或创建⽂件进⾏阅读和写作; 将数据附加到⽂件末尾 'W' 打开⽂件进⾏写⼊⽽不⾃动刷新 'A' 打开⽂件,⽆需⾃动刷新即可追加 仅当⽂件时,FILENAME可以是MATLABPATH相对部分路径名打开阅读。
您可以以⼆进制模式(默认)或⽂本模式打开⽂件。
在⼆进制模式下,没有任何字符被挑出来进⾏特殊处理。
在PC上的⽂本模式中,前⾯有回车符在输⼊中删除换⾏符并在换⾏符之前添加输出中的字符。
要以⽂本模式打开⽂件,请将“t”附加到权限字符串,例如'rt'和'w +t'。
(在Unix上,⽂本和⼆进制模式是相同的,所以这没有效果。
在PC系统上这很关键。
) status = fclose(FID) 丢失与⽂件标识符FID关联的⽂件,这是从早先调⽤FOPEN获得的整数值。
fclose如果成功则返回0,否则返回-1。
如果FID不代表打开⽂件,或者等于0(标准输⼊),1(标准输出),或2(标准错误),fclose引发错误。
Matlab---读取.txt⽂件Matlab读取 .txt⽂件这⾥提供两种⽅法:1,load()函数。
2,importdata()函数。
-----------------------------------------------------------------------------⼀、对于load()函数。
例⼦,data_txt.txt内容如下:0 1.000000 1.000000 1.0000001 3.000000 4.000000 5.0000002 5.000000 7.000000 9.0000003 7.000000 10.00000 13.000004 9.000000 13.00000 17.000005 11.00000 16.00000 21.00000example_load_txt.m 内容如下:clear all;close all;clc%对于类似的txt⽂件,不含有字符,只有数字data=load('F:\F桌⾯⽂件\data_txt.txt');x=data(:,1);y1=data(:,2);y2=data(:,3);y3=data(:,4);plot(x,y1,'r--',x,y2,'bo',x,y3,'ks')-----------------------------------------------------------------------------⼆、对于importdata()函数。
例⼦,data_txt_string.txt内容如下:i co c1 c20 1.000000 1.000000 1.0000001 3.000000 4.000000 5.0000002 5.000000 7.000000 9.0000003 7.000000 10.00000 13.00000example_importdata_txt.m 内容如下:clear all;close all;clc%只是第⼀⾏有字符,则使⽤importdata可直接读取数据data1=importdata('F:\F桌⾯⽂件\data_txt_string.txt');data2=data1.data; %若没有这⼀步,出不出来图。
matlab下面这个函数是取filein中的第line行写入fileout稍微修改一下就可以。
function dataout=dataread(filein,fileout,line)fidin=fopen(filein,'r');fidout=fopen(fileout,'w');nline=0;while ~feof(fidin) % 判断是否为文件末尾tline=fgetl(fidin); % 从文件读行nline=nline+1;if nline==linefprintf(fidout,'%s\n',tline);dataout=tline;endendfclose(fidin);fclose(fidout);%%%%%%%%%%%%%%%%%%%%%%%%%%调用格式:dataout=dataread(filein,fileout,line)如果你的txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任意列的数据a=textread('ll.txt');t=a(1:43,4:10);1:43是1到43行,4:10是4到10列的数据,当然也可以只读一个数据,如果你的matlab 没有textread函数,直接从mathworks网站下载就行。
根据txt文档不同种类介绍不同的读取数据方法转自:/youngbrave/blog/item/878db31fcd4f220f304e15bb.html一、纯数据文件(没有字母和中文,纯数字)对于这种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 array textdata 4x1 300 cell array Grand total is 54 elements using 460 bytes>> datadata =1 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等。
这里%s的个数和[a1,a2,a3,a4]对应。
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)a1 ='1''2''3''4''5'a2 ='11''22''33''44''55'a3 ='111''222''333''444''555'a4 ='1111''2222''3333''4444''5555'因以字符串的形式读入,所以有''。
————————————————————————————————三、中文数据英文混乱如test.txt你好1 11 111 1111欢迎来到2 22 222 2222振动论坛3 33 333 33334 44 444 44445 55 555 5555说明:这种内容格式的文件用上面的方法是不行的。
以下是由chinamaker编写的一种方法:fidin=fopen('test.txt'); % 打开test2.txt文件fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件while ~feof(fidin) % 判断是否为文件末尾tline=fgetl(fidin); % 从文件读行if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值fprintf(fidout,'%s\n\n',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txtcontinue % 如果是非数字继续下一次循环endendfclose(fidout);MK=importdata('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来>> MKMK =1 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555Matlab中从文件夹中批量读取文件的做法function [read_data]=batch_read_file(file_type);% <<---文件已完成,程序已修正--->>% 可以读取的文件中,若有列数不相同的,则补nan% 数据文件中只能是数字% *.xls 文件只能是英文或数字命名% 批量读数据的程序注,只能读取*.txt类文件,且文件必须有后缀名% [read_data_A]=batch_read_file('*.txt')% [read_data_A]=batch_read_file('*.xls')% file_type为文件的格式% 返回值read_data 为元胞数值,保存谋取到的数据% 对xls 文件的说明:% xls 文件以文件名升序排序% xls 文件只能容许一个工作表,若有多个,则读取的为名字值最大的一个工作表% file_type='*.txt'类or file_type='*.xls';% 示例:在数据文件中有如下内容1.txt% 1 2 3.345 1234.5422 12% 1.2222 2.3333 3.4444% 1 2 3 4 5 6 7 8 9% 读出的数据是一个(3,9)的矩阵空缺的部分为nanfile_read=dir(file_type);% 获得要读取的文件列表%%%%%%%%%%%%%-+-XLS XLS XLS XLS XLS-+-%%%%%%%%%% 在此段读取*.xls 类文件if strcmp(file_type,'*.xls')for i=1:length(file_read)file_name{i}=file_read(i).name;% 获取文件名的列表% 开始准备向从xls 文件中读取数据read_data{i}=xlsread(file_name{i});endelse%%%%%%%%%%%%%-+-TXT TXT TXT TXT TXT-+-%%%%%%%%% % 在此段读取*.txt 类文件for i=1:length(file_read)file_name{i}=file_read(i).name;fid=fopen(file_name{i},'r');% 开始准备向从文件中读取数据k=1;while ~feof(fid)% 这儿用fgetl似乎也没有错temp=fgets(fid);length_temp_data(k)=length(str2num(temp));% 求长度temp_read_data{i}{k}=str2num(temp);% 写%%%%%%%%k=k+1;end%%-----max_row=max(length_temp_data);% 求最大的长度,以确定补nan 的个数%%%%%%for j=1:k-1len=length(temp_read_data{i}{j});if len<max_rowtemp_read_data{i}{j}(len:max_row)=nan;endread_data{i}(j,:)=temp_read_data{i}{j};endfclose(fid);endend。