Diferencia entre revisiones de «Matriz2fortran.sed»

De FJWiki
Saltar a: navegación, buscar
 
Línea 1: Línea 1:
Script [[sed]] para transformar una matriz texto separada por tabulaciones a una expresión de creación de matriz en fortran, sólo hay que reemplazar al final las dimensiones.
+
Script [[sed]] para transformar una matriz texto separada por tabulaciones a una expresión de creación de matriz en fortran, sólo hay que reemplazar al final las dimensiones. Devuelve los números con "d0" para expresar doble precisión.
  
  
Línea 22: Línea 22:
 
Ejemplo usando [[math2matriz.sed]]:
 
Ejemplo usando [[math2matriz.sed]]:
  
  $ echo "{{1.5,2e4},{3*10^5,4}}" | sed -f math2matriz.sed | sed -f matriz2fortran.sed
+
  $ echo "{{1.5,2},{3,4}}" | sed -f math2matriz.sed | sed -f matriz2fortran.sed
 
  = reshape((/ &
 
  = reshape((/ &
         1.5d0,2d0e4d0, &
+
         1.5d0,2d0, &
         3d0*10d0^5d0,4d0/), &
+
         3d0,4d0/), &
 
         (/n, n/) )
 
         (/n, n/) )
  

Revisión del 20:50 24 abr 2008

Script sed para transformar una matriz texto separada por tabulaciones a una expresión de creación de matriz en fortran, sólo hay que reemplazar al final las dimensiones. Devuelve los números con "d0" para expresar doble precisión.


matriz2fortran.sed

#Convierte una matriz por tabs en formato para mathematica

1 i = reshape((/ \&
s/[0-9.][0-9.]*/&d0/g
s/d0e\([-+][0-9]*\)d0/d\1/g
s/\t/,/g
$! s/^.*$/\t&, \&/g
$ {
s/^.*$/\t&\/), \&/g
a\
	(/n, n/) )
}


Ejemplo

Ejemplo usando math2matriz.sed:

$ echo "{{1.5,2},{3,4}}" | sed -f math2matriz.sed | sed -f matriz2fortran.sed
= reshape((/ &
        1.5d0,2d0, &
        3d0,4d0/), &
        (/n, n/) )


Ver también