Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Dos arrays a partir de uno solo

¡Resuelto!
Ir a solución

¡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!

 

dibujo.JPG

Francisco José Gómez López
Software Engineer
0 kudos
Mensaje 1 de 7
3.789 Vistas

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!

Francisco José Gómez López
Software Engineer
0 kudos
Mensaje 2 de 7
3.788 Vistas

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

 

Jaime Peña
National Instruments Mexico
Ingeniería de Aplicaciones
www.ni.com/soporte
0 kudos
Mensaje 3 de 7
3.783 Vistas

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!

Francisco José Gómez López
Software Engineer
0 kudos
Mensaje 4 de 7
3.778 Vistas

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,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 5 de 7
3.760 Vistas

¡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!

Francisco José Gómez López
Software Engineer
0 kudos
Mensaje 6 de 7
3.758 Vistas
Solución
Aceptado por el autor del tema fran_jo

Hola,

 

  Te adjunto una solución a lo que necesitas.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
Mensaje 7 de 7
3.744 Vistas