elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  extraer un vector de una matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: extraer un vector de una matriz  (Leído 7,359 veces)
pastyto

Desconectado Desconectado

Mensajes: 4


Ver Perfil
extraer un vector de una matriz
« en: 20 Enero 2012, 00:46 am »

Hola a todos

Por favor necesito su ayuda ... tengo una matriz que es leida desde un archivo txt y quiero de esa matriz de mxn sacar las ultimas n-4 columnas  y llamarla como otra matriz.


En línea

soyloqbuskas

Desconectado Desconectado

Mensajes: 219


¡El conocimiento es de todos!


Ver Perfil
Re: extraer un vector de una matriz
« Respuesta #1 en: 20 Enero 2012, 00:57 am »

¡Buenas pastyto!

Para hacer eso, necesitas crearte una matriz N-4xN. Una vez creada debes rellenarla con los valores de la matriz original. Asi que necesitas recorrer la matriz original con 2 bucles for() y cojer el valor y ponerlo en la matriz nueva.

Código:
for(i=0;i<n-4;i++){
    for(j=0;j<n;j++){
           //cojer valor y poner en la matriz nueva en la posicion (i,j)
    }
}

Espero haberte servido de ayuda, un saludo.


En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
pastyto

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: extraer un vector de una matriz
« Respuesta #2 en: 20 Enero 2012, 01:01 am »

gracias

y para escribir la nueva matriz puedo poner asi ???

T_Part[j]=Datos[j];

de la matriz Datos es de donde saco las columnas que quiero y quiero que se almacenen en la matriz T_Part....

soy nueva en programacion ... gracias

EI: juntando mensajes.

estaria bien ponerle asi ??? porque no corre ...

    vector<vector<double> > Datos;
    vector<vector<double> > T_Part;
    Datos=leer_archivo("matriz_1.txt");
    escribir_archivo("matriz_original.txt",Datos); // esta funcion ya esta creada
   
    for (int i=0;i<Datos.size()-3;i++)
    {
        for (int j=0;j<Datos.size();j++)
        {
        T_Part[j]=Datos[j];
        }
    }
    escribir_archivo("partidos.txt",T_Part);

y no funciona ...
« Última modificación: 22 Enero 2012, 10:49 am por Eternal Idol » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: extraer un vector de una matriz
« Respuesta #3 en: 22 Enero 2012, 04:48 am »

Pensandolo un poco no es claro si quieres crear una matriz en base a otra consistiendo de:

A) Todas las columnas menos las ultimas cuatro.
B) Solo las ultimas cuatro columnas.

Otro problema es que usualmente se almacena la informacion en filas y columnas (no al reves: columnas y filas).

En el caso usual con filas primero y columnas despues, utilizando la clase vector de C++ puedes:

1) Crear el nuevo vector
2) Utilizas por cada uno de los elementos del vector la funcion miembro "assign" para el reajuste del tamaño y copia de valores.

Un programa de ejemplo relativamente largo, la mayoria solo es "fluf" (creacion y asignacion de valores a la matriz), la parte importante donde se muestra el proceso de copia esta comentado.

Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. using std::endl;
  5.  
  6. #include <vector>
  7. using std::vector;
  8.  
  9. int main()
  10. {
  11. vector<vector<int> > mat(10);
  12. typedef vector<vector<int> >::size_type vvi_size;
  13. typedef vector<int>::size_type vi_size;
  14.  
  15. for (vvi_size i = 0; i != mat.size(); ++i){
  16. mat[i].resize(10);
  17.  
  18. for (vi_size j = 0; j != mat[i].size(); ++j)
  19. mat[i][j] = j;
  20. }
  21.  
  22. for (vvi_size i = 0; i != mat.size(); ++i){
  23. for (vi_size j = 0; j != mat[i].size(); ++j)
  24. cout << ' ' << mat[i][j];
  25. cout << endl;
  26. }
  27. cout << "----" << endl;
  28.  
  29. // Creamos el nuevo vector
  30. vector<vector<int> > nuevo(10);
  31. // Iteramos por cada elemento (fila)
  32. for (vvi_size i = 0; i != nuevo.size(); ++i)
  33. // Asignamos los elementos requeridos del vector original (mat)
  34. nuevo[i].assign(mat[i].begin(), mat[i].end() - 4);
  35.  
  36. // Impresion de prueba
  37. for (vvi_size i = 0; i != nuevo.size(); ++i){
  38. for (vi_size j = 0; j != nuevo[i].size(); ++j)
  39. cout << ' ' << nuevo[i][j];
  40. cout << endl;
  41. }
  42.  
  43. return 0;
  44. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
pastyto

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: extraer un vector de una matriz
« Respuesta #4 en: 22 Enero 2012, 05:40 am »

mil gracias .... besos


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como paso una matriz a un vector ??
Programación C/C++
Crowgray 4 20,236 Último mensaje 14 Junio 2010, 20:05 pm
por 16BITBoy
pasar matriz a vector
Programación C/C++
mapers 1 5,521 Último mensaje 11 Diciembre 2010, 04:59 am
por Siuto
Diferencia entre array, matriz, y vector
Programación C/C++
Caster 4 19,727 Último mensaje 22 Mayo 2012, 19:38 pm
por Caster
Matriz con Vector auxiliar
Programación C/C++
brunojuy 1 2,306 Último mensaje 10 Septiembre 2012, 23:50 pm
por durasno
Programa con matriz y vector, ayuda
Programación C/C++
luchofiattipo 1 2,640 Último mensaje 9 Octubre 2012, 19:05 pm
por x64core
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines