next up previous contents index
Next: 成分の代入 Up: 行列成分の操作 Previous: 式行列の成分の取り出し

0-1配列を用いた成分の操作

比較演算の結果生成される0-1配列を用いれば小行列を作成できる。 m x 1 の縦ベクトル(配列)Aから負の要素を取り去る例を次に示す。    

  A = Array([-1, 1, -2, 2]);
  L = A > 0;         // L = [0 1 0 1]
  B = A(L);          // B = [1 2]


ここで,Lは比較演算の結果作られる0と1からなる m x 1 の配列である。 次のように,Lを用いずに直接正の成分を取り出すこともできる。


  A = Array([-1, 1, -2, 2]);
  B = A(A > 0);       // B = [1 2]


関数find()を使って指数を求めてから,正の成分を取り出してもよい。


  A = Array([-1, 1, -2, 2]);
  idx = find(A > 0);  // idx = [2 4]
  B = A(idx);         // B = [1 2]


次に,Aの負のようその符合を反転する例を示す。


  A = Array([-1, 1, -2, 2]);
  L = A < 0;      // L = [1 0 1 0]
  B = -A(L);      // B = [1 2]
  A(L) = B;       // A = [1 1 2 2]


次のように,Lを用いないで直接負の成分の符合を反転することのできる。


  A = Array([-1, 1, -2, 2]);
  A(A < 0) = -A(A < 0);      // A = [1 1 2 2]


関数find()を使って指数を求めてから,負の成分の符合を反転しても良い。


  A = Array([-1, 1, -2, 2]);
  idx = find(A < 0);  // idx = [1 3]
  A(idx) = -A(idx);   // A = [1 1 2 2]




Masanobu KOGA 平成10年8月19日