SUBSTRINGS CREATION WITH DIFFERENT ORDER
1 次查看(过去 30 天)
显示 更早的评论
I wish to estimate substrings of length 4-13, a primary secuence currently about 150,000 binary numbers. How to create the substrings be as follows:
let's assume we have the following sequence (numbers in parentheses indicate the order):
s = 0 (1) 1 (2) 1 (3) 0 (4) 1 (5) 1 (6) 0 (7) 1 (8) 0 (9) 0 (10) 0 (11) 1 (12)
substrings of length 4 would be:
0 (1) 1 (2) 1 (3) 0 (4)
1 (2) 1 (3) 0 (4) 1 (5)
1 (3) 0 (4) 1 (5) 1 (6)
0 (4) 1 (5) 1 (6) 0 (7)
1 (5) 1 (6) 0 (7) 1 (8)
1 (6) 0 (7) 1 (8) 0 (9)
0 (7) 1 (8) 0 (9) 0 (10)
1 (8) 0 (9) 0 (10) 0 (11)
0 (9) 0 (10) 0 (11) 1 (12) .
Now would do the same with the substrings of length 5 After substrings of length 6 ..... up length 13
Many thanks
0 个评论
采纳的回答
Azzi Abdelmalek
2013-11-21
编辑:Azzi Abdelmalek
2013-11-21
s =[ 0 1 1 0 1 1 0 1 0 0 0 1 ];
n=6;
m=numel(s)-n+1;
A=zeros(m,n);
idx=cell2mat(arrayfun(@(x) x:x+n-1,(1:m)','un',0));
out=s(idx)
4 个评论
Azzi Abdelmalek
2013-11-21
s =[ 0 1 1 0 1 1 0 1 0 0 0 1 ];
n=4;
m=numel(s)-n+1;
A=zeros(m,n);
idx=cell2mat(arrayfun(@(x) x:x+n-1,(1:m)','un',0))
out=s(idx)
[a,b,c]=unique(out,'rows','stable')
freq=accumarray(c,ones(size(c)))
[a freq]
更多回答(1 个)
Andrei Bobrov
2013-11-21
编辑:Andrei Bobrov
2013-11-21
s = [0 1 1 0 1 1 0 1 0 0 0 1 ];
n = numel(s);
k=4:n;
out = cell(n-3,1);
for jj = 1:numel(k)
p = s(hankel(1:k(jj),k(jj):n)');
[p2,~,ii] = unique(p,'rows');
out{jj} = [p2, accumarray(ii,1)];
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!