필터 지우기
필터 지우기

how to automate the count of consecutive values in a cell array

조회 수: 1 (최근 30일)
Hi! I have a cell array with this values
a={'2' '3' '4' '5'; '2' '2' '3' '1'; '2' '2' '2' '1';'1' '2' '3' '3'; '1' '2' '3' '4'};
a =
'2' '3' '4' '5'
'2' '2' '3' '1'
'2' '2' '2' '1'
'1' '2' '3' '3'
'1' '2' '3' '4'
and I want to count the number of consecutive values in the colums I consider the first two columns and I find the couples:
('2' '3'), ('2' '2') ('1' '2')
I want to find the number of times that this couples are presents in the first two colums
('2' '3') --> 1
('2' '2') --> 2
('1' '2') --> 2
After I consider the triple
('2' '3' '4'), ('2' '2' '3'), ('2' '2' '2'), ('1' '2' '3')
I want to find the number of times that this couples are presents in the first three columns:
('2' '3' '4')--> 1
('2' '2' '3')--> 1
('2' '2' '2')--> 1
('1' '2' '3')--> 2
After I consider the quadruple
('2' '3' '4' '5'), ('2' '2' '3' '1'), ('2' '2' '2' '1'), ('1' '2' '3' '3') ('1' '2' '3' '4')
I want to find the number of times that this couples are presents in the four columns:
('2' '3' '4' '5')--> 1
('2' '2' '3' '1')--> 1
('2' '2' '2' '1')--> 1
('1' '2' '3' '3')--> 1
('1' '2' '3' '4')--> 1
Can you help me?

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2016년 3월 30일
x={'2' '3' '4' '5'; '2' '2' '3' '1'; '2' '2' '2' '1';'1' '2' '3' '3'; '1' '2' '3' '4'};
[n,m]=size(x)
for k=2:m
a=x(:,1:k)
b=arrayfun(@(x) strjoin(a(x,1:k),'/'),(1:size(a,1))','un',0);
[ii,jj,kk]=unique(b,'stable');
out{k-1,1}=[a(jj,:) num2cell(accumarray(kk,1))];
end
out{1}
out{2}
out{3}

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by