Getting Started | ![]() ![]() |
論理サブスクリプト
論理演算や比較演算から作成される論理ベクトルが、サブ配列を参照するのに使われます。X
を通常の行列で、L
をある論理演算の結果求まった同じサイズの行列とします。そして、X(L)
は、L
の要素がゼロでない部分の X
の要素を指定します。
この種のサブスクリプト機能は、サブスクリプト表現と同じように論理演算を指定することにより1ステップの中で処理されます。つぎのデータを考えましょう。
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
は、他のものと比べ非常に異なって見えます。これをoutlier
と言います。ここでの例題では、平均値から標準偏差の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
他の例題として、Dürerの魔方陣の中で、論理インデックス法とスカラ拡張法を使って素数でないものに0を設定して素数の位置を強調します。
A(~isprime(A)) = 0 A = 0 3 2 13 5 0 11 0 0 0 7 0 0 0 0 0
![]() |
スカラ拡張 | 関数find | ![]() |