Diferencia entre revisiones de «Matriz2fortran.sed»
De FJWiki
| Línea 8: | Línea 8: | ||
1 i = reshape((/ \& | 1 i = reshape((/ \& | ||
s/[0-9.][0-9.]*/&d0/g | s/[0-9.][0-9.]*/&d0/g | ||
| − | s/ | + | s/d0[eEdD]\([-+]\?[0-9]*\)d0/d\1/g |
s/\t/,/g | s/\t/,/g | ||
$! s/^.*$/\t&, \&/g | $! s/^.*$/\t&, \&/g | ||
| Línea 22: | Línea 22: | ||
Ejemplo usando [[math2matriz.sed]]: | Ejemplo usando [[math2matriz.sed]]: | ||
| − | $ echo "{{1.5, | + | $ echo "{{1.5,2E-5},{3e4,4}}" | sed -f math2matriz.sed | sed -f matriz2fortran.sed |
= reshape((/ & | = reshape((/ & | ||
| − | 1.5d0, | + | 1.5d0,2d-5, & |
| − | + | 3d4,4d0/), & | |
(/n, n/) ) | (/n, n/) ) | ||
Revisión del 21:04 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/d0[eEdD]\([-+]\?[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,2E-5},{3e4,4}}" | sed -f math2matriz.sed | sed -f matriz2fortran.sed
= reshape((/ &
1.5d0,2d-5, &
3d4,4d0/), &
(/n, n/) )