
cuánto se tarda en volver de un fragmento de estados I a otro I
Publicado por C (6 intervenciones) el 27/01/2023 13:19:48
Hola, ahora que he roto el hielo, y perdido la vergüenza de preguntar, vuelvo con un nuevo problema, a ver si tengo tanta suerte como la otra vez (muchas gracias, de nuevo, a la gran ayuda que me disteis).
Mi problema deriva un poco de lo obtenido antes con las cadenas de 3 estados, una vez que tengo la secuencia de estados con la que hacer la cadena de markov, necesitaría dividir los estados entre I y no I (C y S, juntos). y saber cuánto se tarda en volver de un fragmento de estados I a otro I.
ie ‘IIICCSCCCI’ 6 times/seconds from island of I to new island of I's (ejemplo muy simplificado para explicarme).
De cada cadena necesitaría saber los fragmentos de solo no I (C y S, llamado no islas para su simplificacion) y solo I (llamado islas), contar su frecuencia (o número de islas y no islas), así como su duración individual (de las islas individuales, no la duracion total de todas las islas juntas).
Pongo ejemplo con un fragmento discreto para simplificación, y ejemplo de los resultados que necesitaria poder obtener:
%Given a sequence R = 'IIIICCSCCCIIIIIIIICCCIIIIIICCIIIICCIIICIIISIICII'
% trying to get the number of individual no I fragments (called no islands), duration of individual no islands, number of islands (only I states), duration etc.
The results for the example given:
%startindex_endindex_Duration no islands
% 5_10_6
% 19_21_3
% 28_29_2
% 34_35_2
% 39_39_1
% 43_43_1
% 46_46_1
%number (frequency?) of no islands: 7
%the same for islands (I), starindex, endindex, duration of individual islands
ese ejemplo es uno de cadena muy corta para, al ir contando poder explicarme mejor los resultados que busco.
ahora pongo un ejemplo y loq ue he empezado a hacer.
como veis, asi me salen los starindex:
5
6
7
8
9
10
19
20
21
28
29
34
35
39
43
46
que no es del todo incorrecto, aunque no exactaemnte loq ue necesito... ya que la primera isla si empieza en el segundo 5, y termina en el 10, el segundo entre el 19 y el 21, y asi, pero me salen listados.
el endindex en loq eu me sale mal, y no me termino de centrar en que poder cambiar o mejorar para finalmente obtener algo parecido a loq ue ponia al prinicpio.
0
1
2
3
10
11
12
13
14
15
16
17
21
22
23
24
25
26
29
30
31
32
35
36
37
39
40
41
43
44
Mil gracias!!!!
Mi problema deriva un poco de lo obtenido antes con las cadenas de 3 estados, una vez que tengo la secuencia de estados con la que hacer la cadena de markov, necesitaría dividir los estados entre I y no I (C y S, juntos). y saber cuánto se tarda en volver de un fragmento de estados I a otro I.
ie ‘IIICCSCCCI’ 6 times/seconds from island of I to new island of I's (ejemplo muy simplificado para explicarme).
De cada cadena necesitaría saber los fragmentos de solo no I (C y S, llamado no islas para su simplificacion) y solo I (llamado islas), contar su frecuencia (o número de islas y no islas), así como su duración individual (de las islas individuales, no la duracion total de todas las islas juntas).
Pongo ejemplo con un fragmento discreto para simplificación, y ejemplo de los resultados que necesitaria poder obtener:
%Given a sequence R = 'IIIICCSCCCIIIIIIIICCCIIIIIICCIIIICCIIICIIISIICII'
% trying to get the number of individual no I fragments (called no islands), duration of individual no islands, number of islands (only I states), duration etc.
The results for the example given:
%startindex_endindex_Duration no islands
% 5_10_6
% 19_21_3
% 28_29_2
% 34_35_2
% 39_39_1
% 43_43_1
% 46_46_1
%number (frequency?) of no islands: 7
%the same for islands (I), starindex, endindex, duration of individual islands
ese ejemplo es uno de cadena muy corta para, al ir contando poder explicarme mejor los resultados que busco.
ahora pongo un ejemplo y loq ue he empezado a hacer.
1
2
3
4
5
6
7
8
9
10
11
R = 'IIIICCSCCCIIIIIIIICCCIIIIIICCIIIICCIIICIIISIIC'
RR=abs(R(:))=='I' %to get sequence of 0 and 1, being the 0 the ones to count number of no islands and duration of individual no islands etc
%*** He pensado que al ser 3 estados pero solo necesitar diferenciar las islas (I) y las no islas (C y S), entre I y los %otros 2 estados, si lo paso a binario (1 para I, 0 para C +S) podria simplificarme el codigo***
startindex=find(RR<1)
endindex=find(RR>=1)-1
indices=zeros(1,max(endindex)+1)
duration= endindex-startindex+1
como veis, asi me salen los starindex:
5
6
7
8
9
10
19
20
21
28
29
34
35
39
43
46
que no es del todo incorrecto, aunque no exactaemnte loq ue necesito... ya que la primera isla si empieza en el segundo 5, y termina en el 10, el segundo entre el 19 y el 21, y asi, pero me salen listados.
el endindex en loq eu me sale mal, y no me termino de centrar en que poder cambiar o mejorar para finalmente obtener algo parecido a loq ue ponia al prinicpio.
0
1
2
3
10
11
12
13
14
15
16
17
21
22
23
24
25
26
29
30
31
32
35
36
37
39
40
41
43
44
Mil gracias!!!!
Valora esta pregunta


0