相当于numpy.C/ c++中的nan_to_num
Equivalent of numpy.nan_to_num in C/C++
如何在C/c++中实现与numpy的numpy.nan_to_num
函数等效的行为?
非python程序员规范:
将nan替换为零,将inf替换为有限数。
返回一个数组或标量,用零替换非数字(NaN)。(正)无穷大和负无穷大一个非常小(或负)的数字. ...NaN被0和∞(-∞)被最大的(最小的或适合输出类型的最负的浮点值。
我最终使用了这个,因为我想保持连续性。它也可以与opencl一起工作,并且不需要任何C99的东西。
float nan_to_num(float num){
if (isinf(num)){
if (signbit(num))
return -MAXFLOAT;
else
return MAXFLOAT;
} else {
return num;
}
}
试试这个:
#include <math.h>
double normalize(double num)
if (isnormal(num)){
return num;
} else {
return 0;
}
}
如果要对无穷大进行特殊处理,您还可以使用isinf(num)
作为条件并返回您选择的"大"数
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++ Singleton - Prevent ::instance() to variable
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- g++的分段错误(在NaN上使用to_string两次时)
- 输出是NaN,如何
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- Python str to C++ to Python str
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 为什么我在输出端得到 nan?
- "no matching function for call to 'Vector::Vector'"错误
- 提升反序列化对象具有 nan 或 -nan 值
- vector<vector<double>> to mxArray using memcpy
- Nan::ObjectWrap to Napi::Object Wrap 无法访问 JavaScript 中的属性