Search in array with sequence

I have array like this: y=[00110011100001110011] I need search in array, and if it is sequence [..11..] then i get 5, if it sequence [..111...] then I should get 6. In the answer I should got sequence something like this:[..5665556...] So maybe know how do that?

 Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 23 Nov 2013
Edited: Azzi Abdelmalek on 23 Nov 2013
y='00110011100001110011'
ii={'' '5' '6'}
out=char(ii(cellfun(@numel,regexp(y,'1+','match'))))'
%or
y='00110011100001110011';
a=[0 y-'0' 0];
ii5=strfind(a,[0,1,1,0]);
ii6=strfind(a,[0,1,1,1,0]);
v(ii6)=6;
v(ii5)=5;
v(~v)=[];

2 Comments

Thanks for answer. It works, but if I have that array [00110011100001111111] And I need that result be 5, if it is in interval from 11 to 1111?
y='00110011100001111111001111101111'
n=7; % maximal number of consecutive 1
ii=repmat({'6'},1,n+1)
ii(2:4)={'5'}
out=char(ii(cellfun(@numel,regexp(y,'1+','match'))))'

Sign in to comment.

More Answers (2)

Andrei Bobrov
Andrei Bobrov on 23 Nov 2013
Edited: Andrei Bobrov on 23 Nov 2013
out = sprintf('%d',strfind([y '0'],'10')-strfind(['0' y],'01')+4)
ADD
out = sprintf('%d',(strfind([y '0'],'10')-strfind(['0' y],'01')>3) + 5)
Povilas
Povilas on 23 Nov 2013
Edited: Povilas on 24 Nov 2013
but where y='00110011100001111111001111101111' it is not in '' but in [array2] and cant read from that array
Now my code is:
x = [Masyvas];
x >= 0.14
y1=double(ans)
z=y1'
y=num2str(z)
%y=u(find(~isspace(u)))
r = y(y ~= ' ') %delete space
n=18; % maximal number of consecutive 1
ii=repmat({'6'},1,n+1);
ii(8:13)={'5'};
out=char(ii(cellfun(@numel,regexp(r,'1+','match'))))
And get error:
??? Index exceeds matrix dimensions.
Error in ==> Untitled at 27
out=char(ii(cellfun(@numel,regexp(r,'1+','match'))))

4 Comments

What is it Masyvas? Please small example for Masyvas.
Povilas
Povilas on 25 Nov 2013
Edited: Povilas on 25 Nov 2013
masyvas
Do you expect him to type that in? Unlikely. Please make it easy for him to help you by attaching the csv or workbook file.
add array file.

Sign in to comment.

Tags

Asked:

on 23 Nov 2013

Commented:

on 26 Nov 2013

Community Treasure Hunt

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

Start Hunting!