reading a text file

1 view (last 30 days)
Sameer arora
Sameer arora on 18 Aug 2014
Commented: per isakson on 18 Aug 2014
I have a text file in the format as
65535 ,10,10000,31737,31223,32765,33280,32765,31480,31223,31223,31223,31223,31480, 65535 ,40,50000,31737,31223,32765,33280,32765,31480,31223,31223,31223,31223,31480........
It is delimited by 65535 , I want to separate these blocks of data , can u suggest me how to do that.
Regards
  1 Comment
per isakson
per isakson on 18 Aug 2014
Are there no line-breaks? Is it all in one row?

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 18 Aug 2014
This way is pretty easy to follow and understand:
% Get the string from reading the file.
% (Hard coded below for the demo.)
str = '65535 ,10,10000,31737,31223,32765,33280,32765,31480,31223,31223,31223,31223,31480, 65535 ,40,50000,31737,31223,32765,33280,32765,31480,31223,31223,31223,31223,31480'
% str(str == ' ') = [] % Remove spaces.
numbers = cell2mat(textscan(str, '%d,'))
% Split up into different blocks
delimiters = find(numbers == 65535)
for k = 1 : length(delimiters)
index1 = delimiters(k)+1;
if k == length(delimiters)
index2 = length(numbers);
else
index2 = delimiters(k+1) - 1;
end
% Assign this block to one cell of a cell array.
outputs{k} = numbers(index1:index2);
end
% Display in command window:
celldisp(outputs);
Though, if you want a cryptic one-liner, someone will give you one.

More Answers (0)

Categories

Find more on Data Import and Export in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!