# Separating elements in Length vectors

2 views (last 30 days)

Show older comments

Suppose I have the following data set:

Length =

1.02219692622952

8.29383522727246

17.3975329545455

26.5394026041666

37.4131448863634

48.709668181819

51.4079249999999

61.0677

67.3565390625

76.1625590909094

85.4651375000007

94.6553875000006

105.547397159091

116.990150000001

119.621383914209

129.406797916667

133.8319

141.022715625

150.280673295453

159.456462499999

170.332771874999

181.707094886364

184.246947727274

193.971341666667

204.952635795454

214.060199999998

223.163925000002

233.997125000002

245.374622960725

247.969915909091

197.672519594595

257.617404411765

260.998768555373

268.448049999999

277.622496875

286.750634374999

297.561936363639

308.926818749999

311.588342613638

321.184121875001

328.941806034484

347.096843750003

356.222274999998

367.040681250001

378.45856363637

381.169198863638

390.490676136364

337.968181250005

I want to count how many times the data runs for every

61.0677

129.406797916667

193.971341666667

257.617404411765

321.184121875001

390.490676136364

I was wondering how this can be done.

##### 10 Comments

Walter Roberson
on 25 Feb 2013

### Accepted Answer

Azzi Abdelmalek
on 25 Feb 2013

Edited: Azzi Abdelmalek
on 25 Feb 2013

v=min(x):60:max(x); % x is your array

id=0;

clear out

for k=2:numel(v)

[~,idx]=min(abs(x-v(k)));

id(k)=idx;

out{k-1}=x(id(k-1)+1:id(k))

end

##### 15 Comments

Azzi Abdelmalek
on 28 Feb 2013

Edited: Azzi Abdelmalek
on 28 Feb 2013

a={3.1364 0.3734 NaN 3.2622 3.0374 nan 2.9695}

idx=cellfun(@isnan,a)

a(idx)={0}

### More Answers (3)

Morteza
on 25 Feb 2013

Edited: Azzi Abdelmalek
on 25 Feb 2013

clc,clear

format long

Length = [

1.02219692622952

8.29383522727246

17.3975329545455

26.5394026041666

37.4131448863634

48.709668181819

51.4079249999999

61.0677

67.3565390625

76.1625590909094

85.4651375000007

94.6553875000006

105.547397159091

116.990150000001

119.621383914209

129.406797916667

133.8319

141.022715625

150.280673295453

159.456462499999

170.332771874999

181.707094886364

184.246947727274

193.971341666667

204.952635795454

214.060199999998

223.163925000002

233.997125000002

245.374622960725

247.969915909091

197.672519594595

257.617404411765

260.998768555373

268.448049999999

277.622496875

286.750634374999

297.561936363639

308.926818749999

311.588342613638

321.184121875001

328.941806034484

347.096843750003

356.222274999998

367.040681250001

378.45856363637

381.169198863638

390.490676136364

337.968181250005];

for i = 1:length(Length)

STR{i,1} = sprintf('%4.12f',Length(i));

end

S0 = input('Enter number : ');

S1 = sprintf('%4.12f',S0);

count = 0;

for i = 1:length(Length)

if strcmp(S1,STR{i,1}) == 1

count = count+1;

end

end

count

##### 0 Comments

Morteza
on 25 Feb 2013

Edited: Morteza
on 25 Feb 2013

what is your MATLAB version?

I write this in MATLAB 2012b and it is work to find out each value, how many times repeated.

you have diffrent floating point data, without converting them into the string you will not be able to find the exact value.

Moreover your data does not have any specific character in each bunch, therefore finding the number of bunches become impossible, except by increasing rate or number of counter for each bunch may be it is possible...

As I see for each 60 period you have one bunch, may be you can use of this parameter....

##### 0 Comments

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!