el 01-10-2012 06:53 AM
¡Hola a tod@s!
Estoy algo perdido en este tema porque busco algo distinto al simple uso de Array Subset. Tengo dos arrays, uno númerico y el otro booleano. Del númerico debo sacar dos arrays teniendo en cuenta los valores booleanos del segundo array. Así pues, si hay más de X valores booleanos seguidos a False, obtengo un subarray numérico (con un for indexado y un build array), si no voy desechando los valores numéricos correspondientes. El primer subarray ya lo saco, pero el segundo, al encontrarse en medio del array numérico, me és más costoso. Uno de los motivos es dónde guardar el segundo subarray que quiero obtener. (El dibujo más abajo viene a mostrar una idea de todo esto)
A la espera de que se entienda mi pregunta ¿Alguna sugerencia? Sigo trabajando en ello.
¡Saludos!
¡Resuelto! Ir a solución.
01-10-2012 07:01 AM - editado 01-10-2012 07:03 AM
Una aclaración que creo que vendria bien... En el dibujo guardaría un primer array. Faltaria guardar ese segundo array que estoy tratando de obtener... Y en el caso False, el contador se pone a 0 de nuevo.
¡Saludos!
el 01-10-2012 11:42 AM
Hola Francisco
Asi como lo planteas tambien estoy perdido jeje. Es broma,solo para saber, el tamano de tu subarray numerico siempre es fijo o varia?, vaya, tu sabes la posicion del segundo array que quieres generar cierto?, mencionas que si hay un numero consecutivo de False en el array booleano, obtienes un arreglo. tambien mencionas que en caso contrario, los valores numericos los desechas, que valores numericos?.los que corresponden a la posicion del arreglo booleano?
Porque con saber el tamano del arreglo principal y la posicion de enmedio tu puedes obtener un subarreglo estableciendo la posicion inicial y final.
Saludos y espero tus comentarios
el 01-10-2012 04:51 PM
Hola Jaime,
El tamaño de los dos vectores (o arreglos como vos los llamais 🙂 ) es fijo. Lo que no se es dónde se producen los cambios de True a False del array de booleanos.
Es decir, lo que no conozco son las posiciones dónde los valores booleanos canvian de True a False (o al revés). La secuencia de valores booleanos vendria a ser como tres tramos con muchos valores a False consecutivos y en medio otros tramos con valores True y False mezclados. Así que los valores numéricos (subarrays numéricos) que quiero obtener deben coincidir con los tramos de valor False. Pero nunca se en que posición empiezan o acaban estos tres tramos de valores False, estas posiciones pueden variar.
Espero haberme explicado un poquito mejor.
¡Saludos!
el 01-12-2012 09:24 AM
Hola,
No me quedo totalmente claro que querías, me parecio entender que tienes un arreglo de doubles, y otro de booleanos, y quieres separar el de doubles en dos arreglos según si el valor booleano es true o false, si es así te adjunto una solución, de no ser eso espero por lo menos veas algo que te sea útil.
Saludos Cordiales,
01-12-2012 09:31 AM - editado 01-12-2012 09:41 AM
¡sí es Luis! Los dos arreglos tiene la misma longitud. En el arreglo de booleanos hay varios subconjuntos de valores False consecutivos, cuyos índices inicial y final desconozco (sobretodo el subconjunto de las posiciones del medio). Debo obtener el primer y segundo subconjunto de valores double segun las posiciones de los subconjuntos primero y segundo de booleanos.
Tu solución me permite obtener dos arreglos de double segun coincida con un valor True o False. Como he intentado explicar antes me interesan subconjuntos de números que coincidan con los subconjuntos de booleanos
El código siguiente viene a ilustrar lo que busco, veis que en la variable arreglo_BOOL hay 3 subconjuntos de valores False, pues me interesan los dos primeros y los valores double que coincidan con esos subconjuntos.
arreglo_DBL= [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]; arreglo_BOOL= [F,F,F,F,F,F,T,F,T,T,T,F,F,F,F,F,F,F,T,T,T,F,T,F,F,F,F,F]; subconjunto_1= [0,1,2,3,4,5]; subconjunto_2= [11,12,13,14,15,16,17];
¡Gracias por tu tiempo!
el 01-13-2012 01:10 PM
Hola,
Te adjunto una solución a lo que necesitas.
Saludos,