所以我正在使用一些matlab代码手动转换为c代码。 我只是想知道是否有相当于我在matlab代码中看到的sind和cosd函数的交流。 我想这会以度为单位返回答案而不是以弧度为单位给出结果的c sin和cos函数。 我想我可以将结果乘以180 / pi,但只是想知道math.h中是否有库函数我没有看到。 或者即使gsl库中有某些内容可以执行此操作。
由于M_PI
的不精确,H2CO3的解决方案将对大型参数造成灾难性的精度损失。 任何参数的一般安全版本是:
#define sind(x) (sin(fmod((x),360) * M_PI / 180))
不,C标准库中的三角函数都以弧度为单位。 但是你可以轻松地使用宏或内联函数:
#define sind(x) (sin((x) * M_PI / 180))
要么
inline double sind(double x) { return sin(x * M_PI / 180); }
请注意,当您想要更改函数的返回值 (所谓的反函数或“arcus”函数)时,需要与转换相反:
inline double asind(double x) { return asin(x) / M_PI * 180; }
不,它们在C库中不可用。 您只能在C库中找到弧度值参数或返回值。
另外,请注意sind和cosd等不以度数返回结果,它们以度为单位获取参数。 asind和acosd以度数返回结果。
不在C库中。 所有三角C库函数都将参数作为弧度值而非度数。 正如您所说,您需要自己执行转换或使用专用库。
以上就是c/c++开发分享c等于matlab的sind和cosd函数相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/544746.html