Borrar filtros
Borrar filtros

Generate all possible subset from a character array in MATLAB

2 visualizaciones (últimos 30 días)
Sangeetha R
Sangeetha R el 30 de Mzo. de 2019
Respondida: Walter Roberson el 30 de Mzo. de 2019
I need to generate all possible subset from a character array with reduced execution time. Actual input is of length '500' characters and maximum length of subset is limited to 20 characters.
For example:
input='ABCA';
output ='A', 'B', 'C', 'AB', 'BC', 'CA', 'ABC', 'BCA', 'ABCA'
  4 comentarios
Walter Roberson
Walter Roberson el 30 de Mzo. de 2019
Could you confirm that length(unique(input)) is 500? For example 500 Chinese ideographs? As opposed to length(input) being 500 but the number of unique being much smaller?

Iniciar sesión para comentar.

Respuestas (2)

Sangeetha R
Sangeetha R el 30 de Mzo. de 2019
Editada: Sangeetha R el 30 de Mzo. de 2019
Answer that i found is given below,
tic
input='MERASLIQKAKLAEQAERYEDMAAFMKGAVEKGEELSCEERNLLSVAYKNVVGGQRAAWRVLSSIEQKSNEEGSEEKGPEVREYRVFYLKMKGDYYRYLAEVATGDDKKRIIDSARSAYQEAMDISKKEMPPTNPIRLGLALNFSVFHYEIANSPEEAISLAKTTFDEAMADLHTLSEDSYKDSTLIMQLLRDNLTLWTADNAGEEGGEAPQEPQSMERASLIQKAKLAEQAERYEDMAAFMKGAVEKGEELSCEERNLLSVAYKNVVGGQRAAWRVLSSIEQKSNEEGSEEKGPEVREYRVFYLKMKGDYYRYLAEVATGDDKKRIIDSARSAYQEAMDISKKEMPPTNPIRLGLALNFSVFHYEIANSPEEAISLAKTTFDEAMADLHTLSEDSYKDSTLIMQLLRDNLTLWTADNAGEEGGEAPQEPQSSEDSYKDSTLIMQLLRDNLTLWTADNAGEEGGEAPQEPQSMERASLIQKAKLAEQAERYEDMAAFMKGAVEKGEELSCEERNLLSVAYKNVVGGQRAAW';
l=length(input);
begn=1;
count=1;
output_seq=cell(1000,1);%preallocating
for i=1:l
if(begn<=l)
[count,output_seq]=pep(begn,l,input,count,output_seq);
begn=begn+1;
end
end
output_unique=unique(output_seq);
toc
function [count,output_seq]=pep(b,l,input,count,output_seq)
for i=0:l
if(b+i-b<21)
if(b+i<=l)
p = input(b:b+i);
output_seq{count}=p;
count=count+1;
end
end
end
end

Walter Roberson
Walter Roberson el 30 de Mzo. de 2019
Consider
[S(1:end-2);
S(2:end-1);
S(3:end)].'
Now unique rows

Categorías

Más información sobre C Shared Library Integration en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by