Matlab - Combinar elementos de un vector

   
Vista:

Combinar elementos de un vector

Publicado por Felipe (4 intervenciones) el 23/04/2014 04:04:48
Estimados, junto con saludarles me gustaría plantearles el siguiente problema:

Necesito realizar todas als combinaciones posibles de un vector,considerando k elementos.
por ejemplo para el vector x=[1,2,3,4,5] y k=3 se obtendría

[1,2,3;
1,2,4;
1,2,5;
1,3,4;
1,3,5;
1,4,5;
2,3,4;
2,3,5;
2,4,5;
3,4,5]

Si bien existen comandos para realizar esta función tales como nchoosek ó combntns estás sólo funcionan cuando la longitud del vector es inferior a 15.En mi caso necesito implementar las combinaciones para un vector de 41 elementos.He intentado realizarlo creando un función con contadores,invirtiendo harto tiempo pero no he llegado a nada.Si alguien conoce algún comando o una función que permita implementar lo que deseo sería de muchísima ayuda.De antemano gracias,Saludos

Felipe
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Combinar elementos de un vector

Publicado por Ignacio (26 intervenciones) el 23/04/2014 10:55:26
Se me ocurre que quizá puedes dividir tu vector de 41 elementos en vectores de menos de 15 elementos y aplicarles las ordenes que mencionas pero luego no se me ocurre como combinarlos entre si... Quizá con bucles for que te creen las posibles combinaciones... pero weno. Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Combinar elementos de un vector

Publicado por Felipe (4 intervenciones) el 23/04/2014 18:52:38
El problema es que el largo del vector no siempre es 41,entonces no me servirían los ciclos for.De todas maneras gracias por la idea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Combinar elementos de un vector

Publicado por Ignacio (26 intervenciones) el 24/04/2014 16:44:07
Bueno podrías crear un bucle for desde 1 hasta length(Vector) pero es una forma muy chapucera y creo que te costaría mucho llegar a hacer que el programa funcione. Siento no poder ser de más ayuda. :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Combinar elementos de un vector

Publicado por Josete (1 intervención) el 28/04/2014 13:46:19
Yo al utilizar la función "nchoosek" pongo el vector en forma de columna y no tengo ningún problema con la longitud del vector a la hora de obtener las combinaciónes. No se si en tu caso es estrictamente necesario tenerlo en forma de fila.
Espero haber sido de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar