Tengo esta función (la conversión de coordenadas WGS84 de un geoide de coordenadas cartesianas ... no importa):tema awk (devolver una matriz de función definida por el usuario)
function convert_geo_to_enu(coord_geo) { \
xi=sqrt(1 - e*e*sin(coord_geo[1])*sin(coord_geo[2])); \
\
coord_enu[1]=(a/xi + coord_geo[3])*cos(coord_geo[1])*cos(coord_geo[2]); \
print coord_enu[1] " hhh " ; \
coord_enu[2]=(a/xi + coord_geo[3])*cos(coord_geo[1])*sin(coord_geo[2]); \
coord_enu[3]=(a*(1-e*e)/xi0 + coord_geo[3])*sin(coord_geo[1]); \
\
return coord_enu \ # <-- here comes the problem
} \
problem --> mawk: line 64: illegal reference to array coord_enu
¿Cuál es el problema de volver como una matriz? ¿Hay alguna sintaxis diferente?
que podría utilizar:
function convert_geo_to_enu(coord_geo, coord_enu) { \
...
coord_enu[1]=...
...
} \
o incluso:
function convert_geo_to_enu(coord_geo) { \
...
coord_enu[1]=...
...
} \
y luego sólo tiene que utilizar la variable coord_enu
como global?
Pero se ve mejor con el uso de la instrucción de retorno (esp. Para mí)
eliminar todos los caracteres de continuación de línea. no son necesarios, [pueden causar problemas] (http://stackoverflow.com/q/12349873/7552), y ciertamente dificultan la legibilidad. –