经常遇到,我们想要读取的数据,不是从头开始读取的,我们往往要求从固定的行开始读取,MATLAB代码如下:
function readData()
%从指定行开始读取数据
readFilePath='C:\Second_teeth\data\di_tance\Diff_distance\10\textfiel\Zm\*.txt';
readPathStr='C:\Second_teeth\data\di_tance\Diff_distance\10\textfiel\Zm\';
%savePathStr='D:\data\tooth\seg_small_txtfile\Zm\'; %d3是没有滤波的 d2是滤过的 70-80\
savePathStr='C:\Second_teeth\data\di_tance\Diff_distance\qiefen_1\Zm\';
fileList=dir(readFilePath);
fileNum=length(fileList);
for j=1:fileNum
name=fileList(j).name; %获得cell数据中的name列 也就是完整的文件名字 Zhao-zhang Syam LWF Su
splitName=strsplit(name,'.'); %在.处截取.前面的字符串
varStr = splitName{1};
%dirname = [savePathStr,varStr,'\'];
a = ['mkdir ' savePathStr]; %mkdir是一个判断文件夹的函数。没有创建,有的话就是一个警告不是错误
system(a); %执行外部命令
fileName=strcat(readPathStr,name);%这个语句 就是获得了这个文件的完整路径
fid=fopen(fileName,'r');
if fid<0
warndlg('打开文件失败!');
return;
else
FormatString=repmat('%f ',1,1);
out =cell2mat(textscan(fid,FormatString,1202,'HeaderLines',601)); %从601行开始读取1202*1的矩阵数据
newStr=[savePathStr,int2str(j),'.txt'];
dlmwrite(newStr,out,'-append');
end
msgbox('文件读取成功!');
if fclose(fid)==0
msgbox('文件关闭成功!');
else
warndlg('关闭文件失败!');
end
end