MATLAB Answers

Japoe25
0

How to turn data from text file into cell array?

Asked by Japoe25
on 7 May 2015
Latest activity Commented on by Japoe25
on 7 May 2015
So I've got this sample.txt and I'm told that the first integer is to be the number of triangles there are on the array while the following numbers are the width and height respectively.
So far I'm at:
FID=fopen('sample.txt','r');
A=fscanf(FID,'%s');
and I get the string but it has no spaces. I want the scan to ignore the 1st number and make the rest into a 2 column matrix so I can used the height and width to create the area. Please help!

  0 Comments

Sign in to comment.

1 Answer

Answer by Michael Haderlein on 7 May 2015
Edited by Michael Haderlein on 7 May 2015
 Accepted Answer

What is rows 2-18? Under the assumption that we can ignore them, just use textscan and take them as headerlines:
>> fid=fopen('sample.txt');
>> data=textscan(fid,'%f%f','headerlines',18);
>> fclose(fid);
>> width=data{1};
>> height=data{2};
However, only 100 rows are found then instead of 112. But as some of the rows before row 19 have more/less than 2 columns, they don't seem to have the same meaning.

  3 Comments

Hello,
So what they told me is every number after the first one is the width and height but alternating, 1st width: 5 1st height:10
thank you :)
>> fid=fopen('sample.txt');
>> data=textscan(fid,'%f','headerlines',1);
>> fclose(fid);
>> width=data{1}(1:2:end);
>> height=data{1}(2:2:end);
That's much better! thank you kind sir, sorry for duplicating, I was getting impatient :(

Sign in to comment.