看起来更好
我有这个函数(将WGS84大地水准面坐标转换为笛卡尔坐标…无关紧要):
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
作为数组返回有什么问题?有什么不同的语法吗?
我可以使用:
function convert_geo_to_enu(coord_geo, coord_enu) {
...
coord_enu[1]=...
...
}
甚至:
function convert_geo_to_enu(coord_geo) {
...
coord_enu[1]=...
...
}
然后只使用变量CCD_ 1作为全局?
但使用return语句(尤其是对我来说)
有点晚了,但这里有一个我使用的解决方案:
我向函数发送了一个我想要填充的变量作为参数:
function myfunct(result, array_size) {
for(i = 1; i <= array_size; i++) {
result[i] = ##whatever you want
}
}
然后,您可以将结果变量视为函数之外的数组
希望这能帮助人们寻找答案
将数组视为全局数组。AWK无法返回数组。