Need help with reading few row of my data and saving it in a new txt file
1 次查看(过去 30 天)
显示 更早的评论
I have 1*1 matrix. Its a big file of 6MB. I want to read few row and save those data in a new .txt file. I was trying this code
for i=0:1;
M=[num2str(1+i),'.txt'];
data1=dlmread(M);
t1=data1(0:80000);
fnamec=[num2str(1+i), 'xm.txt'];
dlmwrite(fnamec,t1);
end
getting error ??? Error using ==> dlmread at 145
Out of memory. Type HELP MEMORY for your options.
Error in ==> textread at 3
data1=dlmread(M);
Please help me with a code that will help me do the work Thanks for your time
1 个评论
per isakson
2013-10-9
编辑:per isakson
2013-10-9
"Error in ==> textread at 3 data1=dlmread(M)"
textread is a function of Matlab.
采纳的回答
dpb
2013-10-9
编辑:dpb
2013-10-9
Probably simplest to copy a few lines from A to B is to just use fgets() --
SOTOO (NB: aircode...)
fid1=fopen('yourinputfile','r');
fid2=fopen('youroutputfile','w');
N=input('How many lines to copy?');
for idx=1:N
fprintf(fid2,'%s',fgets(fid1));
end
fclose('all')
4 个评论
dpb
2013-10-20
The above writes two files which may be the intent; if otoh, the idea is to just not write the first N lines then
for idx=1:N
fgetl(fid1);
end
M=20;
for idx=1:M
fprintf(fid2,'%s',fgets(fid1));
end
Will do. Also NB in your solution that you're not actually doing M additional lines after the first N; you're doing M-N+1. If, for example, you asked to skip 10 and write the following 3 your second loop wouldn't execute at all... (exercise for student--why?)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!