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.txt
daa fsds sds sdv
1 3.4 5.6 7.8
2 4.5 6.7 3.4
3 4.5 5.6 3.5
fileID = fopen(test.txt);
C = textscan(fileID,'%d %f %f %f','headerlines',1); % %d有符号整数 %f双精度浮点数 %s读取以空白或分隔符分隔的文本
fclose(fileID);得到的C是一个cell类型的数据。

textscan与textread的区别:
参考:https://ww2.mathworks.cn/help/matlab/ref/textscan.html
xlsread(略)
importdata
用法:
A = importdata(filename,delimiterIn,headerlinesIn) %delimiterIn指定分隔符,headerlines指定跳过标题行数举例:
C=importdata('test.txt',' ',1);
load
用法:
load(filename) %如果filename是 MAT 文件,load(filename)会将 MAT 文件中的变量加载到 MATLAB工作区。如果filename是 ASCII 文件,load(filename)会创建一个包含该文件数据的双精度数组。
load(filename,variables) %加载MAT文件中的指定变量,该变量要加引号''S = load(___)查看MAT文件中的内容:whos -file filename.mat
>> whos -file tiaohe.mat
Name Size Bytes Class Attributes
Aver_X 15x15 1800 double
H 15x15 1800 double
g 15x15 1800 double查看文本文件内容:type filename
>> type test.txt
daa fsds sds dada
1 3.4 5.6 7.8
2 4.5 6.7 3.4
3 4.5 5.6 3.5 参考:https://ww2.mathworks.cn/help/matlab/ref/load.html?searchHighlight=load&s_tid=doc_srchtitle
dlmread
用法:
M = dlmread(filename) % 将 ASCII 分隔的数值数据文件读取到矩阵M。dlmread函数从该文件中检测到分隔符,并将重复的空白视为一个分隔符。
M = dlmread(filename,delimiter) %使用指定的分隔符读取该文件中的数据,并将重复的分隔符视为单独的分隔符。
M = dlmread(filename,delimiter,R1,C1) %从行偏移量R1和列偏移量C1开始读取。
M = dlmread(filename,delimiter,[R1 C1 R2 C2]) % 仅读取行偏移量R1和R2及列偏移量C1和C2界定的范围。举例:
>> M=dlmread('test.txt',' ',1,0)
M =
1.0000 3.4000 5.6000 7.8000
2.0000 4.5000 6.7000 3.4000
3.0000 4.5000 5.6000 3.5000
>> M=dlmread('test.txt',' ',[1,1,3,3])
M =
3.4000 5.6000 7.8000
4.5000 6.7000 3.4000
4.5000 5.6000 3.5000参考:https://ww2.mathworks.cn/help/matlab/ref/dlmread.html?searchHighlight=dlmread&s_tid=doc_srchtitle
csvread
M = csvread(filename) %将逗号分隔值(CSV)格式化文件读入数组M中。该文件只能包含数值。
M = csvread(filename,R1,C1) %从行偏移量R1和列偏移量C1开始读取文件中的数据。
M = csvread(filename,R1,C1,[R1 C1 R2 C2]) %仅读取行偏移量R1和R2及列偏移量C1和C2界定的范围。举例:
新建文件test.csv(用记事本或Notepad打开):
daa,fsds,sds,dada
1,3.4,5.6,7.8
2,4.5,6.7,3.4
3,4.5,5.6,3.5
>> M = csvread('test.csv',1,0)
M =
1.0000 3.4000 5.6000 7.8000
2.0000 4.5000 6.7000 3.4000
3.0000 4.5000 5.6000 3.5000参考:https://ww2.mathworks.cn/help/matlab/ref/csvread.html?searchHighlight=csvread&s_tid=doc_srchtitle
fscanf
用法:
A = fscanf(fileID,formatSpec) %根据formatSpec指定的格式解释文件中的值。
A = fscanf(fileID,formatSpec,sizeA) %将文件数据读取到维度为sizeA的数组A中,并将文件指针定位到最后读取的值之后。fscanf按列顺序填充A。sizeA必须为正整数或采用[m n]的形式。举例(略)
参考:https://ww2.mathworks.cn/help/matlab/ref/fscanf.html?searchHighlight=fscanf&s_tid=doc_srchtitle
转载于:https://www.cnblogs.com/keegentang/p/10690755.html
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删