Matlab - Tablas generadas dinámicamente

 
Vista:

Tablas generadas dinámicamente

Publicado por aknur (2 intervenciones) el 17/08/2005 13:05:22
Hola amigos, resulta que tengo que realizar una práctica sobre matlab que consiste en ir leyendo de un fichero ascii una serie de mensajes GPS dados por un navegador gps (un log vamos...). Mi idea es ir poniendo los datos en una tabla a la vez que voy leyendo el fichero pero claro, hasta que no lo he leido entero no se cuantos mensajes tengo.

Hay alguna forma de ir añadiendo líneas a una matriz inicial en Matlab. Así para cada linea que lea la voy poniendo en la matriz y una vez haya leido todo el fichero ya tengo los datos que necesito en esa matriz.

Otra forma es primero leer el fichero y quedarme con el numero de mensajes que hay y luego hacer una segunda lectura para ir haciendo los calculos.

Gracias por vuestra ayuda. Un saludo.
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

RE:Tablas generadas dinámicamente

Publicado por Agustín (11 intervenciones) el 19/08/2005 01:31:37
Hola, mira yo uso esta forma para ingresar mas lineas (también sirve par acolumnas)

si tienes una matriz ya hecha puedes leer sus filas o culumnas asi

n = size(matriz) %esto te entregará un vector con el número de filas y columnas, se pueden rescatar con n(1) o n(2), dependiendo de si queires la fial o la comuna

si fuera fila, lo asignamos a otra variable

f = n(1)

y por ejemplo nos da 45 (número de filas), así que para añadir la 46 seria así

f = f+1

A(f,1) = x donde A es la matriz que tenías y x el valor nuevo.

espero te sirva

chauuuu
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

RE:Tablas generadas dinámicamente

Publicado por aknur (2 intervenciones) el 19/08/2005 12:31:14
Gracias Agustín, veo que es una forma sencilla pero probando ayer por la tarde encontré otra forma que al menos a mi me vale y lo mismo a tí también te sirve, por eso te la expongo.

Cuando tienes que insertar una nueva fila y tienes todos los datos que quieras introducir, es decir, para no ir introduciéndolos uno a uno, pones:

n = size(matriz)
f = n(1)
f = f+1
(como tu bien indicas)

A(f,:)=[arg1 arg2 arg3 ... argn]

o bien

A(:,f)=[arg1 arg2 arg3 ... arg4]

Los "argX" corresponden con el valor de las celdas que quieres introducir y con : indicas "toda la fila" o toda la "columna", de manera que introduces todos los valores que hay entre [ ] rellenando todos los campos de la nueva fila.

A mi esto me funciona para lo que lo necesito, y puede ser que a tí tb te valga. Un saludo.
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