逻辑下标

优质
小牛编辑
142浏览
2023-12-01

从逻辑和有关运算创建的逻辑向量可以用于参考子数组。设X是普通的矩阵,L是由一些逻辑运算得到的同尺寸的矩阵。那么X(L)指定X的元素中L的元素非零的部分。

通过指定逻辑运算为下标表达式,这种下标可以一步完成。设有下列数据集。

    x =
      2.1 1.7 1.6 1.5 NaN 1.9 1.8 1.5 5.1 1.8 1.4 2.2 1.6 1.8
    

NaN 表示一次丢失的观察值,譬如对一份问卷调查中的某项未答。要用逻辑标定指数移除丢失数据,用finite(x),它对于所有有限数值和NaN及Inf(无穷大)都正确。

    x = x(finite(x))
    x =
      2.1 1.7 1.6 1.5 1.9 1.8 1.5 5.1 1.8 1.4 2.2 1.6 1.8
    

这里还有一个观察值5.1,它似乎和其他有很大差别。它是一个局外者。以下语句把局外者删除,在此例中是指那些到均值距离超过标准差3倍的元素。

    x = x(abs(x-mean(x)) <= 3*std(x))
    x =
    2.1 1.7 1.6 1.5 1.9 1.8 1.5 1.8 1.4 2.2 1.6 1.8
    

另一示例是,通过用逻辑标定指数和标量扩张把杜勒的魔方中的非素数变成0,来突出素数的位置。

    A(~isprime(A)) = 0
    
    A =
         0     3     2    13
         5     0    11     0
         0     0     7     0
         0     0     0     0