matlab中怎么读取文件|Matlab批量读取一个文件夹里的txt文件

Ⅰ Matlab批量读取一个文件夹里的txt文件

Matlab批量读取一个文件夹里的txt文件的方法。

如下参考:

1.首先,在这里举例制作一个txtde文本文件,如下面页面的内容。

Ⅱ Matlab文件夹、文件、读取操作(汇总)

在Windows中,“D:\”表示D盘,“D:”表示目录 还可以查找特定后缀的文件: 如: dir(['fk\','*.jpg']) 表示查找 fk文件夹下后缀为 ' .jpg' 的文件 若 fk 目录下存在后缀为'.jpg' 的文件,则返回文件名: 1260500466587.jpg 1260500472025.jpg 8673601d.jpg 否则返回: fk.\*.jpg not found. 其中dirname是要查找的路径的名字,路径在matlab的搜索路径内时,没有必要输入全名,只输入最后或最后两级就够了。 fopen ('filename', 'mode') mode格式有: ‘r’:只读方式打开文件(默认的方式),该文件必须已存在。 ‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。 ‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。 ‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。 ‘a’:在打开的文件末端添加数据。文件不存在则创建。 ‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。 如果rt表示该文件以文本方式打开,如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。 Fopen函数两个返数升回值: fclose(f) f为打开文件的标志,若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无段迟法成功关闭该文件。 若要一次关闭打开的所有文件,可以使用下面的命令:fclose all MATLAB自带的MAT文件为二进制文件,但为了便于和外部程序进行交换以及方便查看文件中的数据,也常常采用文本数据格式(数据采用ASCII码格式,可以表示字母和数字字符)与外界进行数据交换。 函 数 | csvread| dlmread| fscanf| load| textread| -|-|- 数 据 类 型| 数值数据| 数值数据| 字母和数值| 数值数据| 字母和数值| 分 隔 符| 仅cooma| 任何字符| 任何字符| 仅space| 任何字符| 返 回 值| 1| 1| 1| 1| 多返回值 如: A=load('my_data.txt'); 如果想把4列数据全部读取出放在4个变量中,则使用如下命令: >> [name gra grades answer]=textread('my_exam.dat','%s %s %f %s') 函 数| csvwrite| diary| dlmwrite| fprintf| save -|-|- 数 据 类 型| 数值数据| 数值数据或单元阵列| 数值数据| 字母和握毕李数值数据| 数值数据 分 隔 符| 逗号| 空格| 任何字符| 任何字符| 制表符或空格符 存写有分隔符的ASCII码数据文件 若要将当前的MATLAB工作空间的一个或多个变量写到一个有分隔符的ASCII码文件中,可以使用save命令或dlmwrite函数。在默认情况下,save命令是以 MAT 格式存写数据的。 作用 | 标志 | 例子 -|- 左对齐 | ' – ' | %-5.2f 打印符号字符(+或 – ) | '+' | %+5.2f 插入空格| ' ' | % 5.2f 垫零 | '0' | %05.2f 对%o, %x, %X, 打印 0,0x,0X的前缀。 对%f, %e, %E, 打印小数点,即使是0。 对%g, %G,不删除或尾部的零或小数点。 | '#' | %#5.0f 例: 创建一个2×2的魔方矩阵,然后打开一文件,写入数据。 fseek frewind 设定指针位置重设指针到文件起始位置 ftell feof 获得指针位置测试指针是否在文件结束位置

Ⅲ 想用matlab读取txt文件,怎么实现

输入输出方式,即从数据文件读取数据或将结果写入数据文件。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等。缺省数据精度为uchar,即无符号字符格式。例6.8 将一个二进制矩阵存入磁盘文件中。>> a=[1 2 3 4 5 6 7 8 9];>> fid=fopen('d:\test.bin','wb') %以二进制数据写入方式打开文件fid = 3 %其值大于0,表示打开成功>> fwrite(fid,a,'double')ans = 9 %表示写入了9个数据>> fclose(fid)ans = 0 %表示关闭成功2)读二进制文件fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:[A,COUNT]=fread(fid,size,precision)说明:其中A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用则它的值可以是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。3、文本文件的读写操作1)读文本文件fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:[A,COUNT]=fscanf(fid,format,size)说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。size为可选项,决定矩阵A中数据的排列形式,它可以取下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。2)写文本文件fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:fprintf(fid,format,A)说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。例6.9 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。>> a='string';>> fid=fopen('d:\char1.txt','w');>> fprintf(fid,'%s',a);>> fclose(fid);>> fid1=fopen('d:\char1.txt','rt');>> fid1=fopen('d:\char1.txt','rt');>> b=fscanf(fid1,'%s')b =stringmatlab读txt文件fid=fopen('fx.txt','r');%得到文件号[f,count]=fscanf(fid,'%f %f',[12,90]);%把文件号1的数据读到f中。其中f是[12 90]的矩阵%这里'%f %f'表示读取数据的形势,他是按原始数据型读出fclose(fid);%关闭文件另外有的txt文件还可以用load来打开其语句为f=load('fx.txt)我个人觉得用第一种方式较好。因为有些时候,特别是fx.txt 的一行种有多个数据时用load就比较麻烦了。

Ⅳ matlab读取excel数据

matlab读取excel数据方法如下:

操作设缺隐备:戴尔灵越5000。

设伏乎厅备系统:win10。

操作软件:matlab2020b。

1、首先打开matlab软件,点击【新建】-【脚本】。

Ⅳ matlab中如何按行读取txt文件

fid = fopen('aaa.txt');tline = fgetl(fid);while ischar(tline) disp(tline) tline = fgetl(fid);endfclose(fid);

Ⅵ Matlab如何读取文本文件

1、读入来 列数 和 行数均一致的数源据可是直接用 load filename 或者load('filename');或者s=load('filename');如果filename 中为纯数据,则直接读入到一个矩阵中。2、importdata函数可读入数据(可以是文件,也可以是系统粘贴板上的内容),对于行列数不一致的按照第一行的列数对其,其余的NaN补齐,以矩阵方式储存。a=inportdata(__,delimiterIn,headerlinesIn);指定数据的分割方式和跳过指定的行数进行读数据,不过该方式将以cell的方式储存。3、csvread函数专门针对数据中间以“,”隔开的文件。利用R1(行,以0开始,列也一样 ),C1(列)可以指定开始读入数据的位置,与R2,C2配合使用可以指定读入数据的范围。4、dlmread函数可以读取“ASCII-分隔符”的数据文件,用法与csvrad类似。

Ⅶ 用MATLAB如何读取一个文件夹里的图片

1、查看图片所物察仿在的位置。

Ⅷ matlab读取任意路径下文件

你可以复制过来嘛,实在不行可以修改工作区的,调整到你要的目录就好了具体如下cd空格路径如cd f将当前工作区域转换到f盘这样的话你要的就是cd pathnamefopen(filename)

Ⅸ matlab如何读取其中的一部分文件

一、纯数据文件(没有字母和中文,纯数字耐祥)x0dx0a对于这种txt文档,从matalb中读取就简单多了x0dx0a例如test.txt文件,内容为x0dx0a17.901 -1.1111 33.045 x0dx0a17.891 -1.1286 33.045 x0dx0a17.884 -1.1345 33.045x0dx0a可咐亩轿以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样衡肆;另一种方法是在file/import data……/next/finish 也可产生一个叫test的数据文件。x0dx0a二、中英文和数据如test1.txtx0dx0a你好 x0dx0a欢迎来到 x0dx0a论坛 x0dx0ae.cn x0dx0a1 11 111 1111 x0dx0a2 22 222 2222 x0dx0a3 33 333 3333 x0dx0a4 44 444 4444 x0dx0a5 55 555 5555x0dx0ax0dx0a这样的文件怎么读入数据呢? x0dx0a方法有多种,现举两个比较简单实用的。x0dx0a方法一: x0dx0afile/import data……/next/finish x0dx0a>> whos x0dx0aName Size Bytes Classx0dx0adata 5×4 160 double array x0dx0atextdata 4×1 300 cell arrayx0dx0aGrand total is 54 elements using 460 bytesx0dx0a>> datax0dx0adata =x0dx0a 1 11 111 1111 x0dx0a 2 22 222 2222 x0dx0a 3 33 333 3333 x0dx0a 4 44 444 4444 x0dx0a 5 55 555 5555x0dx0a>> textdatax0dx0atextdata =x0dx0a &#39你好x0dx0a &#39欢迎来到x0dx0a &#39论坛x0dx0a &#39e.cn&#39x0dx0a方法二: x0dx0a[a1,a2,a3,a4]=textread(&#39test1.txt&#39,&#39%s%s%s%s&#39,&#39headerlines&#39,4) x0dx0a说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。 x0dx0a这里%s的个数和[a1,a2,a3,a4]对应。 x0dx0a>> [a1,a2,a3,a4]=textread(&#39test1.txt&#39,&#39%s%s%s%s&#39,&#39headerlines&#39,4)x0dx0aa1 =x0dx0a &#391x0dx0a &#392x0dx0a &#393x0dx0a &#394x0dx0a &#395&#39x0dx0aa2 =x0dx0a &#3911x0dx0a &#3922x0dx0a &#3933x0dx0a &#3944x0dx0a &#3955&#39x0dx0aa3 =x0dx0a &#39111x0dx0a &#39222x0dx0a &#39333x0dx0a &#39444x0dx0a &#39555&#39x0dx0aa4 =x0dx0a &#391111x0dx0a &#392222x0dx0a &#393333x0dx0a &#394444x0dx0a &#395555x0dx0a因以字符串的形式读入,所以有&#39&#39。 x0dx0a————————————————————————————————x0dx0a三、中文 数据 英文 混乱如test.txtx0dx0a你好 x0dx0a1 11 111 1111 x0dx0a欢迎来到 x0dx0a2 22 222 2222 x0dx0a论坛 x0dx0a3 33 333 3333 x0dx0ae.cn x0dx0a4 44 444 4444 x0dx0a5 55 555 5555x0dx0a说明:这种内容格式的文件用上面的方法是不行的。x0dx0a以下是由chinamaker编写的一种方法:x0dx0afidin=fopen(&#39test.txt&#39); % 打开test2.txt文件 x0dx0afidout=fopen(&#39mkmatlab.txt&#39,&#39w&#39); % 创建MKMATLAB.txt文件 x0dx0awhile ~feof(fidin) % 判断是否为文件末尾 x0dx0a tline=fgetl(fidin); % 从文件读行 x0dx0a if double(tline(1))>=48&&double(tline(1))> MKx0dx0aMK =x0dx0a 1 11 111 1111 x0dx0a 2 22 222 2222 x0dx0a 3 33 333 3333 x0dx0a 4 44 444 4444 x0dx0a 5 55 555 5555x0dx0a—————————————————————x0dx0a我的txt数据里既有数字又有字符串,形式为:x0dx0a0.129515 DDAA 01 2.24609 94.50000 98x0dx0a0.130434 DDAA 01 2.24609 96.30000 9Ax0dx0a0.131441 DDAA 01 2.24609 97.20000 9Bx0dx0a0.132448 DDAA 01 2.24609 99.00000 9Dx0dx0a0.133507 DDAA 01 2.24609 100.80000 9Fx0dx0a0.134515 DDAA 01 2.24609 101.70000 A0x0dx0a…………x0dx0a我只想要第一列,第四列,第五列。x0dx0a也就是0.129515 2.24609 94.50000 这3列数,x0dx0a怎样导入matlab啊?x0dx0ax0dx0a假设数据在data.txt里,且位于当面matlab路径里,用下面这句就可以了x0dx0a[col1,col2,col3]=textread(&#39data.txt&#39,&#39%f %*s %*d %f %f %*s&#39,-1);

Ⅹ matlab怎么读取文本文件中的数据

方法一:A=importdata(file,space,line)其中,file是所读取的文件名,space是特定的分隔符,line是一个数字,指文本中字符串文字的行数,如上文的数据中line=4。此代码的含义是,line行是title,line+1行到end是数据,按特定分隔符space读取数据。此方法可以读取文本在上和数据在下的文件。A是一个sturct,其中A.data就是所需的数据了。exapmle:A=importdata('test.txt','',4);%运行即可取得数据A.data此方法也可以按以下操作获取:在文件菜单中选择file/importdata,按照提示进行操作至结束。在command窗口中输入>>whosNameSizeBytesClassdata5x4160doublearraytextdata4x1300cellarrayGrandtotalis54elementsusing460bytes>>datadata=11111111112222222222333333333344444444445555555555>>textdatatextdata='你好''欢迎来到''百思论坛''www.si.net'方法二:[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%d,%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'因以字符串的形式读入,所以有''。文件内容形式二(假定文件名为test2.txt):你好1111111111欢迎来到2222222222百思论坛3333333333www.si.net44444444445555555555说明:这种内容格式的文件用上面的方法是不行的。方法三:以下是由chinamaker编写的一种方法,但是需要重新建一个文本。fidin=fopen('test2.txt');%打开test2.txt文件fidout=fopen('mkmatlab.txt','w');%创建MKMATLAB.txt文件while~feof(fidin)%判断是否为文件末尾tline=fgetl(fidin);%从文件读行ifdouble(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=11111111112222222222333333333344444444445555555555


赞 (0)