您的位置:首页 > 编程语言 > MATLAB

matlab 常用文件读写操作

2017-04-15 18:29 288 查看

前言

在工作中,常常需要将数据写入文件,或者从文件中读取数据。在matlab中,实现文件读写操作的函数有许多。比如:

fopen() fscanf() fprintf() load() dlmwrite() save() fclose()
等等。针对需求选取恰当的函数,将会极大编程效率。

实例

将矩阵写入txt文件

save()

适用范围:将工作空间的变量保存到文件中。

save(filename)
save(filename,variables)
save(filename,variables,fmt)
save(filename,variables,version)
save(filename,variables,'-append')


% 实例:将矩阵(m*n)写入txt文件
%fid=fopen('d.txt','w');
d=reshape(1:1:12,[4,3])';
path='mydata003.txt';
save(path,'d','-ascii');


dlmwrite()

适用范围:将矩阵直接写入文件中。推荐!

dlmwrite(filename,M)example
dlmwrite(filename,M,'-append')
dlmwrite(filename,M,delimiter)
dlmwrite(filename,M,delimiter,row,col)


% 实例:将矩阵(m*n)写入txt文件
%fid=fopen('d.txt','w');
d=reshape(1:1:12,[4,3])';
path='mydata003.txt';
dlmwrite('mydata002.txt',d,' ');


读取文件中的矩阵

load()

适用范围:将数据从文件写入工作空间中。

load(filename)example
load(filename,variables)example
load(filename,'-ascii')example
load(filename,'-mat')
load(filename,'-mat',variables)


path='mydata003.txt';
data=load(path);


关于fscanf()

适用范围:从文本文件中读取输出。相比上面的save()和load(),scanf()能对数据进行更精确和多样的操作。

A = fscanf(fileID,formatSpec)
A = fscanf(fileID,formatSpec,sizeA)


%需求:将txt文件(m*n数据,分隔符为space)中的数据存入一个矩阵data
%我也是逗,直接load(path)不就解决了
%所以明确试用范围
function data=learn_fscanf(path)
[fid,message]=fopen(path,'r');
if fid==-1
disp(message);
end
data=fscanf(fid,'%f',[4,3]);
data=data';
fclose(fid);

end


关于fprintf()

适用范围:将数据写入文本文件。

fprintf(fileID,formatSpec,A1,...,An)example
fprintf(formatSpec,A1,...,An
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab