How to Ignore the last line from a file read

15 views (last 30 days)
Hello people,
I have the folowing file and I would like to plot it with Matlab. As you can see, the last two line are not to be print, are letters. So, how can I ignore it ? That is, I want to read and plot only the four first lines. Anyone can help with it.
1 3 10
2 6 20
3 9 30
4 12 40
END ENDe ENDe
END ENDe ENDe

Accepted Answer

Image Analyst
Image Analyst on 7 Dec 2019
Edited: Image Analyst on 7 Dec 2019
Try this:
% Read in data.
d = importdata('data.txt')
% Now plot each row of data
for k = 1 : 4
plot(d(k, :), '.-', 'LineWidth', 2, 'MarkerSize', 30);
hold on;
legendStrings{k} = sprintf('Row #%d', k);
end
grid on
legend(legendStrings, 'Location', 'north');
Or, with the new data file you attached, perhaps this:
% Read in data.
d = readmatrix('mech_flu.txt', 'Range','A5:c4849')
% Extract just the first 4 rows, like he asked for.
x = d(1:4, 1);
y1 = d(1:4, 2);
y2 = d(1:4, 3);
% Now plot each column of data, but just the first 4 rows
plot(x, y1, '.-', 'LineWidth', 2, 'MarkerSize', 30);
hold on;
plot(x, y2, '.-', 'LineWidth', 2, 'MarkerSize', 30);
grid on
legend('y1', 'y2', 'Location', 'east');
0001 Screenshot.png

More Answers (1)

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH on 6 Dec 2019
s=readmatrix(filename);
s(any(isnan(s),2),:)=[];
figure
plot3(s(:,1),s(:,2),s(:,3),'*-r')
  4 Comments
Walter Roberson
Walter Roberson on 7 Dec 2019
textscan() the file with 'headerlines', 4 and a format of '%f%f%f' . It will automatically stop reading when it encounters the text because the text does not match the numeric format.
Walter Roberson
Walter Roberson on 7 Dec 2019
first_line = 1000;
last_line = 2000;
fmt = '%f%f%f';
fid = fopen('mech_flu.txt');
data = cell2mat( textscan(fid, fmt, last_line - first_line + 1, 'HeaderLines', first_line - 1, 'CollectOutput', true));
fclose(fid)

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!