MATLAB Answers


reading a txt file with rows of different length

Asked by Zinat Zarandi on 21 Feb 2019
Latest activity Commented on by Zinat Zarandi on 22 Feb 2019
I would like to read a text file as below and I need to extract data in 'points' row. I have tried many ways but it didnt work.I appreciate if someone can guide me to find a solution.
Thanks in advance.


What are the 'many ways' you have tried and in what way didn't they work?
I have found this script here and when I use this code in a cell arrey I can find data in points but in default format of text.
how can I seprate it in data?
I need to sepratet first odd num (first,third,...,n-1) as 'x' and even num (second, fourth,..,n) as 'y'.

Sign in to comment.


1 Answer

Answer by Are Mjaavatten on 22 Feb 2019

fid = fopen(filename);
lines = textscan(fid,'%s','delimiter','\n');
lines = lines{1};
% The points data are in line 3. Start after the left bracket:
points = sscanf(lines{4}(strfind(lines{4},'[')+1:end-1),'%f,');
widths = sscanf(lines{5}(strfind(lines{5},'[')+1:end-1),'%f,');
x = points(1:2:end);
y = points(2:2:end);

  1 Comment

Thank you so much. It works.

Sign in to comment.