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 commentaire

per isakson
per isakson le 18 Août 2014
Are there no line-breaks? Is it all in one row?

Connectez-vous pour commenter.

 Réponse acceptée

Image Analyst
Image Analyst le 18 Août 2014

0 votes

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.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by