Matlab - unir varias lineas en una pero con un condicionante

   
Vista:

unir varias lineas en una pero con un condicionante

Publicado por rafa (1 intervención) el 19/08/2013 18:58:07
Hola, tengo un fichero de texto tal que asi:

1
2
3
4
5
6
7
8
9
2.500000e+001	  1.200000e+000	  2.538955e-011	  5.714289e-012	  1.496389e-011	  4.711366e-012
  1.870415e-011	  4.539215e-012	  1.040135e-011	  3.763582e-012	  2.521297e-011	  5.717227e-012
  1.477892e-011	  4.716824e-012	     25.000000 1
  2.500000e+001	  1.175000e+000	  2.583394e-011	  5.657339e-012	  1.569013e-011	  4.486470e-012
  1.909561e-011	  4.705883e-012	  1.023926e-011	  4.150465e-012	  2.562312e-011	  5.660814e-012
  1.547286e-011	  4.489445e-012	     25.000000 1
  2.500000e+001	  1.150000e+000	  2.621943e-011	  5.594693e-012	  1.633321e-011	  4.291530e-012
  1.957751e-011	  4.958499e-012	  1.001733e-011	  4.601686e-012	  2.606939e-011	  5.590120e-012
  1.623196e-011	  4.247308e-012	     25.000000 1



El caso es que me gustaria unir en una sola linea todas las lineas que aparecen hasta que sale un "1" sin nada mas.
El numero de lineas a unir puede variar(en el ejemplo serian 3 lineas a unir en una sola), pero siempre se unen desde el inicio, hasta que aparece un "1" y volveriamos a empezar el proceso para una segunda linea.

En el ejemplo, el resultado final deberia ser este:

1
2
3
4
5
6
7
2.500000e+001	  1.200000e+000	  2.538955e-011	  5.714289e-012	  1.496389e-011	  4.711366e-012	1.870415e-011	  4.539215e-012	  1.040135e-011	  3.763582e-012	  2.521297e-011	  5.717227e-012	 1.477892e-011	  4.716824e-012	     25.000000 1
 
 
2.500000e+001	  1.175000e+000	  2.583394e-011	  5.657339e-012	  1.569013e-011	  4.486470e-012  1.909561e-011	  4.705883e-012	  1.023926e-011	  4.150465e-012	  2.562312e-011	  5.660814e-012	 1.547286e-011	  4.489445e-012	     25.000000 1
 
 
2.500000e+001	  1.150000e+000	  2.621943e-011	  5.594693e-012	  1.633321e-011	  4.291530e-012  1.957751e-011	  4.958499e-012	  1.001733e-011	  4.601686e-012	  2.606939e-011	  5.590120e-012	  1.623196e-011	  4.247308e-012	     25.000000 1



Alguien sabe de que forma se podria hacer??

Muchas gracias anticipadas.
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
información
Otras secciones de LWP con contenido de Matlab
- Código fuente de Matlab
- Cursos de Matlab
- Temas de Matlab
- Chat de Matlab
información
Códigos de Matlab
- DÍAS DE LA SEMANA
- TRIÁNGULO
- Elige una carta

unir varias lineas en una pero con un condicionante

Publicado por ger (24 intervenciones) el 20/08/2013 13:39:05
Hola Rafa, mirá lo que podés hacer es lo siguiente:
En el command window escribí
uiimport
Te va a aparecer una ventana emergente, le das clic a File.
Luego se va a abrir una ventana de diálogo donde tenés que se leccionar el archivo que deseas abrir.
Le das clic en abrir. Arriba tenés que elegir el delimitador de tus datos, que en tu caso es el TAB, que en gral está seleccionado por defecto. Luego seleccioná donde dice: Generar código matlab, siguiente, finalizar. Una vez hecho esto se va a generar en archivo *.m que lee este tipo de archivo.
Básicamente se genera una matriz (o celda, no me acuerdo bien) que la podés recorrer con un par de índices como más te guste y así acceder a los datos. Si declarás un array, con un if o un while podés hacer fácilmente eso que querés. Espero que te sea últi.
Saludos.-
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