Matlab - cómo definir columnas a tomar con nchoosek

 
Vista:

cómo definir columnas a tomar con nchoosek

Publicado por Beatriz (2 intervenciones) el 11/09/2018 14:47:43
Hola
Tengo un conjunto de n columnas con m filas donde a una de las columnas la defino como mi input, a otra como mi output y el resto de las columnas (de la 3 a la 9) quiero definir en nchoosek que me las combine todas juntas, pero no se porque el resultado que da no es correcto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
lista_inputs = [1];
inputs.('all1') = inst_all(:,1);
col = [3 4 5 6 7 8 9];
[m,n] = size(col);
    comb = nchoosek(col,n);
    [ncomb,m] = size(comb);
    for j = ncomb
 all_temp = inst_all(:,1);
        n_input = '1';
        for k = comb(j,:)
            all_temp = [all_temp inst_all(:,k)];
            n_input = [n_input,num2str(k)];
        end
        inputs.(['all',n_input]) = all_temp;
        lista_inputs(1,end+1) = str2num(n_input);
    end
output = inst_all(:,2);
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

cómo definir columnas a tomar con nchoosek

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 11/09/2018 15:49:32
"quiero definir en nchoosek que me las combine todas juntas" podrías elaborar un pequeño ejemplo con una matriz de entrada y la salida que deseas con ese pequeño ejemplo así queda más entendible el requerimiento
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

cómo definir columnas a tomar con nchoosek

Publicado por beatriz (2 intervenciones) el 11/09/2018 18:17:42
Tengo matrices de mas de 10000 lineas pero un ejemplo de lo que quiero sería que de la siguiente tabla:

Col. 1 (asignada como input) Col 2 (asignada como output) col.3 col.4 col.5 col.6 col.7 col.8 col.9
12 23 12 12 52 12 12 51 66
2 12 12 12 52 12 12 51 66
12 23 12 12 52 12 12 51 66

me combine la variable de la columna 1 que asigne como Input con las variables de las columnas de la 3 a la 9, es decir que considere 13456789, o que combine la variable de la columna 1 que asigne como input con las variables de la columna 4 a la 9 es decir 1456789
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

cómo definir columnas a tomar con nchoosek

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 11/09/2018 18:50:38
aún no veo claro lo que quieres hacer, ya que no muestras la salida que deseas, más que expresar en palabras es crear un ejemplo desarrollado a mano no con 10000 lineas sino con menos para ejemplificar, con lo redactado voy a tratar de adivinar tu requerimiento con un ejemplo :

tengo la matriz a

12 23 12 12 52 12 12 51 66
2 12 12 12 52 12 12 51 66
12 23 12 12 52 12 12 51 66


quiero obtener una matriz b que tenga las columnas 1, 3 , 4 ,5, 6, 7, 8 y 9 de a

12 12 12 52 12 12 51 66
2 12 12 52 12 12 51 66
12 12 12 52 12 12 51 66


entonces a partir de ese ejemplo la solución es :

1
2
a=[12 23 12 12 52 12 12 51 66; 2 12 12 12 52 12 12 51 66; 12 23 12 12 52 12 12 51 66];
b=a(:,[1 3 4 5 6 7 8 9]);
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