elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 22:24  


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  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 483 veces)
pastyto

Desconectado Desconectado

Mensajes: 4


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

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: 94


¡El conocimiento es de todos!


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

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

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 por Eternal Idol » En línea
rir3760


Desconectado Desconectado

Mensajes: 382


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

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
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
 
#include <vector>
using std::vector;
 
int main()
{
vector<vector<int> > mat(10);
typedef vector<vector<int> >::size_type vvi_size;
typedef vector<int>::size_type vi_size;
 
for (vvi_size i = 0; i != mat.size(); ++i){
mat[i].resize(10);
 
for (vi_size j = 0; j != mat[i].size(); ++j)
mat[i][j] = j;
}
 
for (vvi_size i = 0; i != mat.size(); ++i){
for (vi_size j = 0; j != mat[i].size(); ++j)
cout << ' ' << mat[i][j];
cout << endl;
}
cout << "----" << endl;
 
// Creamos el nuevo vector
vector<vector<int> > nuevo(10);
// Iteramos por cada elemento (fila)
for (vvi_size i = 0; i != nuevo.size(); ++i)
// Asignamos los elementos requeridos del vector original (mat)
nuevo[i].assign(mat[i].begin(), mat[i].end() - 4);
 
// Impresion de prueba
for (vvi_size i = 0; i != nuevo.size(); ++i){
for (vi_size j = 0; j != nuevo[i].size(); ++j)
cout << ' ' << nuevo[i][j];
cout << endl;
}
 
return 0;
}

Un saludo
En línea

The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
pastyto

Desconectado Desconectado

Mensajes: 4


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

mil gracias .... besos


En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Class Vector, Matriz y Sistema de Ecuaciones en C++
Programación General
H@T 5 659 Último mensaje 29 Mayo 2006, 21:39
por H@T
CLASS VECTOR, MATRIZ Y SISTEMA DE ECUACIONES
Programación C/C++
H@T 5 435 Último mensaje 3 Junio 2006, 21:01
por H@T
como paso una matriz a un vector ??
Programación C/C++
Crowgray 4 3,583 Último mensaje 14 Junio 2010, 20:05
por 16BITBoy
pasar matriz a vector
Programación C/C++
mapers 1 1,626 Último mensaje 11 Diciembre 2010, 04:59
por Siuto
Diferencia entre array, matriz, y vector
Programación C/C++
Caster 4 164 Último mensaje 22 Mayo 2012, 19:38
por Caster
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines