MATLAB: For loop question/ plot figure

for loopheaderlinesMATLABplottingsaveas

  1. I am using a for loop to plot muliple text files; (files go from MT_0058 to MT_0212.txt) Which represent helicopter flight data, And I am running into an issue where some of the files (60% or more) have bad data for the first 300 rows, but may have 20-30 thousand in total. I would like to adjust the headerlines to exclude this bad data, but am running into a problem where some of the files have fewer than 300 rows (shorter flights). Is there a way to adjust the headerlines and ignore text files that have fewer than the minimum amount of rows? Without stopping the program.
  2. When plotting these text files, is there a way to simply use the saveas function without opening the plots as to avoid cluttering my computer with a large amount of open figures?
for k = 58:212
inputFileName = sprintf('MT_%05i-000.txt',k);
outputFileName = sprintf('results%05i.tiff',k);
fid = fopen(inputFileName);
datacell = textscan(fid, '%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f','HeaderLines',5);
fclose(fid);
...
saveas(gcf,outputFileName);
end

Best Answer

If you are on a linux system try
for k = 58:212
inputFileName = sprintf('MT_%05i-000.txt',k);
outputFileName = sprintf('results%05i.tiff',k);
fid = fopen(inputFileName);
new_cmd=sprintf('more %s|wc -l', inputFileName);
[p,num_lines]=system(newcmd);
if num_lines<=300
datacell = textscan(fid, '%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f','HeaderLines',5);
fclose(fid);
else
datacell = textscan(fid, '%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f','HeaderLines',300);
fclose(fid);
...
saveas(gcf,outputFileName);
end
end
Do not have access to MATLAB currently so cannot check..