Octave tand函数转NumPy实现时计算结果不匹配问题咨询
问题原因与解决方法
核心错误点
Octave的tand(x)函数的定义是输入x为角度单位,返回该角度对应的正切值,你之前的转换逻辑颠倒了单位转换的顺序,且对转换对象的理解有误。
正确复现代码
你只需要先将角度单位的DOA数组转换为弧度,再调用NumPy的正切函数即可:
import numpy as np DOA = np.array([[2.44511697], [171.03810943], [-54.15891743], [-106.57844237]]) # 角度转弧度后计算正切,对应Octave的tand逻辑 alfa = np.tan(np.deg2rad(DOA)) print(alfa)
执行后输出结果和Octavetand的输出完全一致:
[[ 0.0427007 ] [-0.15770276] [-1.38444069] [ 3.35904856]]
之前方法错误的原因
你之前执行的np.tan(DOA)是把DOA的数值当成弧度单位计算正切,后续的np.rad2deg是把正切的计算结果(无量纲的比值)错误当成弧度值转换为角度,和tand的定义完全不符,因此得到的结果不符合预期。
内容的提问来源于stack exchange,提问作者Achim
相关产品推荐
相关产品推荐

