arrays - 区分 'inf'和 '-inf'

标签 arrays matlab matrix nan infinite

如何将 inf-inf 彼此分开?

我有包含 inf-inf 的矩阵,我想用 1e6-1e6 替换它们> 分别。

例如,

a = [1 2 3 0 3 4]./[1 1 1 0 1 0];
b = log2([0 2 1 2 1 2]);
c = cat(1,a,b);

也就是说,

c = [  1     2     3   NaN     3   Inf;
    -Inf     1     0     1     0     1];

我要,

newc = [   1   2   3   NaN   3   1e6;
        -1e6   1   0     1   0     1];

我找不到将它们分开的函数。

谢谢。

最佳答案

您可以使用isinf() 检测inf,您可以使用sign() 检测符号。结合两者:

newc = c;
inf_filter = isinf(newc);
newc(inf_filter) = 1e6 * sign(newc(inf_filter));

关于arrays - 区分 'inf'和 '-inf',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981597/

相关文章:

matlab - 如何使用 MATLAB 使用 Butterworth 设计带阻和带通滤波器

c++ - 计算矩阵的秩

python - 根据索引计算从numpy数组中的所有点到单个点的距离

matlab - 在 Matlab 中将 2-D 向量转换为 4-D 向量

python - 将 numpy 数组的每个元素相乘并求和

c++ - 如何访问包含在 c 数组中的 valarray 中的元素

c - 指向结构的指针数组

java - 在Java中访问dll文件

javascript - 我有一个应该是对象的数组

Matlab 中的文件扩展名