当前位置:首页 >> 计算机软件及应用 >>

MATLAB速查之 读txt数据


6.1.3 fscanf 函数读出数据 调用方式 A = fscanf(fid, format) [A,count] = fscanf(fid, format, size) 输入参数 fid format size 同上 同上 决定读取多少数据其内容如下。 n 表示将 n 个元素读入一个向量 inf 读取到文件结尾,结果是一个向量 [m,n]读取的元素填满 m 行 n 列矩阵 输出参数 A count 数据变量 读取值的个数

下面读出 exp.txt 文件。 >> fid = fopen('exp.txt', 'r'); % 'r'表示读取文件操作

>> a = fscanf(fid, '%g %g', [2 inf]); >>fclose(fid) >> a = a' >> a a= 0 0.1000 0.2000 0.3000 0.4000 1.0000 1.1052 1.2214 1.3499 1.4918

0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

1.6487 1.8221 2.0138 2.2255 2.4596 2.7183

6.1.4 从文本文件中读入格式化数据 1.textread 函数读取文本文件 MATLAB 从文本文件中读取格式化的数据函数是 textread。 调用方式 [A,B,C,...] = textread('filename','format') [A,B,C,...] = textread('filename','format',N) [...] = textread(...,'param','value',...) 输入参数 'filename' 'format' N 需要读取的数据文件 每行各个数据格式 读取数据时使用 N 次。

当调用 textread 函数时会按照指定的格式从'filename'中读取数据,并将数据分别保存在 变量 A,B,C 中,直到文件内容被读完为止。 下面是读取 c:\中的 test3.txt 文件操作。 >> !type c:\test3.txt Q1 1 2 Q2 3 4 >> [a1 a2 a3]=textread('c:\test3.txt','%s %f %f') a1 = 'Q1' 'Q2'

a2 = 1 3 a3 = 2 4 这样文件 test3.txt 中的每行分别读入变量 a1、a2、a3。 2.TextScan 函数读取文本数据 对于具有多行文字说明文本数据文件,最好的办法则是用 textscan,或者 fscanf 读取。 调用方式 C = textscan(fid, 'format') C = textscan(fid, 'format', N) C = textscan(fid, 'format', param, value, ...) C= textscan(fid, 'format', N, param, value, ...) 输入参数 fid format 为 fopen 命令返回的文件标识符 是一个字符串变量,表示读取数据及数据转换的规则。Format 中包含了多

种方式,其内容如表 6.5 所示。 表 6.5 format 内容

数据转换规 则 %n %d %d8 %d16 读取一个数字并转换为 double 读取一个数据并转换为 int32 读取一个数据并转换为 int8 读取一个数据并转换为 int16





%d32 %d64 %u %u8 %u16 %u32 %u64 %f4 %f32 %f64 %s %q %c %[…]

读取一个数据并转换为 int32 读取一个数据并转换为 int64 读取一个数据并转换为 uint32 读取一个数据并转换为 uint8 读取一个数据并转换为 uint16 读取一个数据并转换为 uint32 读取一个数据并转换为 uint64 读取一个数字并转换为 double 读取一个数字并转换为 float 读取一个数字并转换为 double 读取一个字符串 读取一个可以是双引号括着的字符串 读取一个字符,包括空格 读取和括号中字符串相匹配的字符。读取操作在首次遇到不匹配的字符和空格时停止。例如% [mus]把 summer 读成 summ

%[^…]

读取和括号中字符串不匹配的字符。读取操作在首次遇到不匹配的字符和空格时停止。例如% [^mus]把 summer 读成 er

Textscan 所支持的数字单元宽度声明有两种,具体如表 6.6 所示。 表 6.6
名称 说明 N 读取包括小数点在内的 N 个数字或者遇到的分隔符,例如%5f32 会把 473.238 读为 473.2

textscan 支持的数据读入格式

N.D读取包括小数点在内的 N 个数字或者遇到的分隔符,返回的数字在小数点后有 D 位数,例如%7.2f 会把 473.238 读为 473.23

下面建立新文件 test1.txt,文件前 2 行是字符串,后三行是数组,首先查看其内容。 >> !type c:\test1.txt a1 a2 1 2 注意,在 Command 窗口下键入“!”后就可以直接执行 Dos 命令 >>file=fopen('c:\test1.txt','r');%打开需要读取的文件 >> str1=textscan(file,'%s',2) ; >> str1{1} ans = 'a1' 'a2 如果需要读取第 3 行、第 4 行可以执行下面命令。 >> da=textscan(file,'%f',[3 4]) ; >> da{1} ans = 1 2 由于 da 是单元数据,下面将其转换为实数型。 >> cell2mat(da) ans = 1 2 如果数据文件中有间隔符,需要忽略间隔符。

>> type c:\test3.txt 1 ,1 ,2

32 , 3 , 4 >> tt=fopen('c:\test3.txt'); >>var=textscan(tt,'%f %f %f', 'delimiter', ',') >> aa=cell2mat(var) aa = 1 32 1 3 2 4 % 忽略‘,’

结束时需要关闭文件 >> fclose(file) >> !type c:\test2.txt 2536 235 19546 >> fid=fopen('c:\test2.txt'); >>for i=1:3 ,a{i}=fgets(fid); end >>fclose(fid);

6.1.5 带有间隔符的文本数据读写 1.读入带有间隔符的数据文件 有时数据与数据之间带有间隔符,需要跳过这些间隔符,才能读入下一个数据,MATLAB 的 dlmread 函数可以执行此项功能, 注意该函数只能读入数据文件, 不能读入非数据文件。 调用方式 M = dlmread('filename') M = dlmread('filename', delimiter) M = dlmread('filename', delimiter, R, C)

M = dlmread('filename', delimiter, range) 输入参数 'filename' delimiter R、C Rang 终止行与列 注意如果数据文件没有间隔符,delimiter 可以用' '代替。 例如 myfile.txt 文件是3阶的魔方阵。 >> !type myfile.txt 8,1,6 3,5,7 4,9,2 下面读入 MATLAB 的 M 矩阵 >> M= dlmread('myfile.txt', ',') M= 8 3 4 1 5 9 6 7 2 等待读入的数据文件 数据文件中有间隔符,默认的间隔符是逗号。 读入数据的起始位置 读入数据的位置,前面两个表示起始的行与列,后面表示数据区域的

如果仅仅读入第三行,可以执行如下命令。 >> M= dlmread('myfile.txt', ',',2,0) M= 4 9 2

注意数据起始于第 0 行第 0 列。 2.写入带有间隔符的数据文件 调用方式 dlmwrite('filename', M)

dlmwrite('filename', M, 'D') dlmwrite('filename', M, 'D', R, C) dlmwrite('filename', M, attribute1, value1, attribute2, value2, ...) dlmwrite('filename', M, '-append') dlmwrite('filename', M, '-append', attribute-value list) 输入参数 filename M 'D' R C -append' attribute1 value1 写入数据的文件名 MATLAB 中变量 间隔符 数据起始的行 数据起始的列,R=0,C=0 表示从第 1 行第 1 列开始写入数据 添加数据操作,否则将删除旧数据 属性 1 属性 1 的值。其内容如表 6.7 所示。 表 6.7
属性 内容

dlmwrite 函数属性的内容

delimiter间隔符 roffset coffset 新老数据间隔行数 新老数据间隔列数

precisio 数据精度,如'%10.5f' n

下面将 3 阶魔方阵写入文件 myfile.txt 中。 >> M=magic(3); >> dlmwrite('myfile.txt', M, 'delimiter', '\t', 'precision', 6)

>> !type myfile.txt 8 3 4 1 5 9 6 7 2

如果需要空一行后添加再新数据,可以键入如下命令。 >> dlmwrite('myfile.txt', M, 'delimiter', '\t','roffset',1,'-append') >> !type myfile.txt 8 3 4 1 5 9 6 7 2

8 3 4

1 5 9

6 7 2

如果保留 2 位小数。 >> dlmwrite('myfile.txt', M, 'delimiter', ',', 'precision', '%1.2f'); >> type myfile.txt 8.00,1.00,6.00 3.00,5.00,7.00 4.00,9.00,2.00 ?


赞助商链接
相关文章:
matlab文件操作及读txt文件及字符串操作
matlab文件操作及读txt文件及字符串操作_理学_高等教育_教育专区。主要介绍了matlab读写字符型文件的相关方法 转载,网上摘录)在使用 MATLAB 遇到问题时,在网上搜索到...
Matlab文件操作及读txt文件(fopen,fseek,fread,fclose)
Matlab文件操作及读txt文件(fopen,fseek,fread,fclose)_理学_高等教育_教育专区。无Matlab 文件操作及读 txt 文件(fopen,fseek,fread,fclose) matlab 文件操作 文件...
MATLAB【按行读取】格式文本txt函数
MATLAB【按行读取】格式文本txt函数_计算机软件及应用_IT/计算机_专业资料。按行读取格式文本函数 Matlab 提供了两个函数 fgetl 和 fgets 来从格式文本文件读取行,...
Matlab读取txt文件
Matlab 读取 txt 文件 根据 txt 文档不同种类介绍不同的读取数据方法 一、纯数据文件(没有字母和中文,纯数字) 对于这种 txt 文档,从 matalb 中读取就简单多了...
matlab中将数据保存为txt或dat格式四种方案
matlab中将数据保存为txt或dat格式四种方案_计算机软件及应用_IT/计算机_专业资料...MATLAB速查之 读txt数据 9页 2下载券 如何在matlab中读取TXT数... 5页 1...
matlab文件操作及读txt文件
matlab 文件操作及读 txt 文件文件操作是一种重要的输入输出方式,即从数据文件读取数据戒将结果写入数据文件MATLAB 提供了一系列低层输入输出函数,与门用于文件...
Matlab 的数据文件读取
必须注意关闭文件,否则 再次打开时会出现错误。 以下程序演示怎样使用Matlab 低级I/O 命令读写一个简单的ASCII 码文件,程序如下: fid =fopen('square mat. txt...
如何matlab 读取同一个文件中的多个txt 文档
如何matlab 读取同一个文件中的多个txt 文档_互联网_IT/计算机_专业资料。matlab 读取同一个文件中的多个txt 文档 function data = readall_txt(path) % READ...
Matlab数据文件的读写
本章将要介绍 MATLAB 中文件的读写和数据的导入导出。 了解 MATLAB 的基本数据操作 掌握 MATLAB文本文件的读写方式 掌握 MATLAB 通过界面导入导出数据 了解 ...
matlab数据读取
matlab数据读取_电脑基础知识_IT/计算机_专业资料。matlab中textread,textscan读取%文本读取 fid=fopen('xyz.txt','r')%打开文件,以 read 的形式读取 A=fscanf(...
更多相关标签: