Diferencia entre revisiones de «Matriz2fortran.sed»
De FJWiki
m |
|||
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
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. Devuelve los números con | + | 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. Los números que ya tengan notación científica son cambiados a notación científica con ''d''. |
== matriz2fortran.sed == | == matriz2fortran.sed == | ||
− | #Convierte una matriz por tabs en formato para | + | #Convierte una matriz por tabs en formato para fortran |
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/) ) | ||
Línea 32: | Línea 32: | ||
* [[math2matriz.sed]] | * [[math2matriz.sed]] | ||
+ | * [[matriz2math.sed]] | ||
* [[Enlaces:sed]] | * [[Enlaces:sed]] | ||
[[Category:Sed_Scripts]] | [[Category:Sed_Scripts]] |
Revisión actual del 22:39 3 jun 2009
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. Los números que ya tengan notación científica son cambiados a notación científica con d.
matriz2fortran.sed
#Convierte una matriz por tabs en formato para fortran 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/) )