工作和學習中,經常需要我們讀取大量的txt等文本文件,這裏面可能有數據和字符[1],本文通過一個代碼示例(測試用.txt文件和matlab代碼文件下載網站:http://download.csdn.net/download/zhouxianen1987/10012733)介紹如何使用matlab讀取txt文件內容。
一、讀取.txt文件
本文測試用.txt文件名爲circleCenter_ERS.txt,文件中內容如下:
713 439 334 16339 1 12.bmp
709 473 336 15042 2 2.bmp
666 462 333 14951 3 20.bmp
703 472 333 15024 4 22.bmp
696 487 334 14994 5 24.bmp
656 496 333 14968 6 26.bmp
705 476 331 14955 7 4.bmp
696 482 341 14899 8 5.bmp
703 471 332 14894 9 9.bmp
675 441 331 15109 10 good_10.bmp
Matlab測試示例的代碼如下:
clear all;close all;clc;
ffid_ERS =fopen('circleCenter_ERS.txt','r');
%輸入數據:ffid
ffid = ffid_ERS ;
%輸出數據:XYRtO, imgName
%讀入.txt文件數據到cell對象中
i = 0;
tline1 = cell(100,1);%定義cell對象
while feof(ffid) == 0
i= i+1;
tline1{i,1} = fgetl(ffid);
% tline = fgetl(ffid);
end
numImg=i;
imgName = cell(numImg,1);
XYRtO = zeros(numImg,5) ;
%從cell對象讀入數據到特定的數據變量
for i=1:numImg
tline=tline1{i,1} ;
[XYRtO(i,1) XYRtO(i,2) XYRtO(i,3) XYRtO(i,4) XYRtO(i,5) imgName{i,1}]...
= strread(tline,'%d %d %d %d %d %s');
end
%輸出數據
imgName_ERS = imgName;
XYRtO_ERS = XYRtO;
二、寫.txt文件[2]matalb中打開文件:
fid = fopen(文件名,‘打開方式’);
- 1
說明:fid用於存儲文件句柄值,如果fid>0,這說明文件打開成功。打開方式有如下選擇:
‘r’:只讀方式打開文件(默認的方式),該文件必須已存在。
‘r+’:讀寫方式打開文件,打開後先讀後寫。該文件必須已存在。
‘w’:打開後寫入數據。該文件已存在則更新;不存在則創建。
‘w+’:讀寫方式打開文件。先讀後寫。該文件已存在則更新;不存在則創建。
‘a’:在打開的文件末端添加數據。文件不存在則創建。
‘a+’:打開文件後,先讀入數據再添加數據。文件不存在則創建。
另外,在這些字符串後添加一個“t”,如‘rt’或‘wt+’,則將該文件以文本方式打開;如果添加的是“b”,則以二進制格式打開,這也是fopen函數默認的打開方式。
最基本的寫入txt文件方法:
%(matlab 與 C++ 類型指代相同) %d-->int %f-->float %lf-->double %s-->string
a = 4; b = 4.3; c = 'name';
fid = fopen(path,'w');
fprintf(fid,'%d %f %s\n',a,b,c);
fclose(fid);
參考資料:
[1] https://jingyan.baidu.com/article/b87fe19e6b478852183568e1.html
[2]https://blog.csdn.net/kunyxu/article/details/53563154