matlab 常用文件讀寫操作

前言

在工作中,常常需要將數據寫入文件,或者從文件中讀取數據。在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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章