[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

18.1 要素の検出と条件のチェック

anyall関数は,行列の要素の「いずれか」あるいは「すべて」 がある条件を満たすかどうかを判定するときに便利です。find関数も, 行列の要素が特定の条件に合っていることを判定するときに便利です。

Built-in Function: any (x, dim)

ベクトルの引数については,そのベクトルのどれかの要素がゼロでない ときに1を返す。

行列の引数については,各要素が1と0を含む行ベクトルを返す。その要 素は,対応する行列の列の要素のいずれかがゼロでないかどうかを示し ている。以下に例を示す。

 
any (eye (2, 4))
     ⇒ [ 1, 1, 0, 0 ]

オプション引数dimを与えると,次元dimにそって動作する。 たとえば,以下のようになる。

 
any (eye (2, 4), 2)
     ⇒ [ 1; 1 ]

Built-in Function: all (x, dim)

関数allは,any関数と似た挙動をするが,ベクトルの全ての要素, あるいは行列のdim次元方向の全ての要素がゼロでないときにのみ,真を返 す点が異なっている。

比較演算子(比較演算子を参照)は,1と0のみを含む行列を返すので, その要素がゼロでないかどうかといった簡単なことではなく,多くのことに関し て行列をテストすることは容易です。たとえば,以下の式は,

 
all (all (rand (5) < 0.9))
     ⇒ 0

ランダムな5行5列の行列について,その要素の全てが0.9よりも小さいかどうか を確認するためにテストします。

条件文(ifwhileステートメントのテスト部分)では,Octave は,all (all (condition))と打ち込んだかのようにテストを扱います。

Mapping Function: xor (x, y)

xyの全体の「排他的論理和」を返す。xyの ブール表現では, xまたはyが真であり,xかつy が真でないときに限り,真である。

Function File: is_duplicate_entry (x)

もしxの要素が,別の要素と重複しているならば,ゼロでない値を 返す。

Function File: diff (x, k, dim)

もしxが長さnのベクトルならば,diff (x)は 1回目の差分(first difference)のベクトルである:

もしxが行列ならば,diff (x)はfirst non-singleton dimensionに沿った列の差の行列となる。

2番めの引数はオプションである。もしこれを与えるならば, diff (x,k)となり,ここでkは非負の整数で ある。この関数は,k回目の差分(k-th differences)を返 す。kが行列の最初のnon-singleton dimensionよりも大きいこと も可能である。このケースにおいて,diffは次のnon-singleton dimensionに沿って差をとることを継続する。

差をとるべき次元は,オプション変数dimによって明示的に指定する ことができる。この場合,k回目の差分は,この次元に沿って計算さ れる。ksize (x, dim)を越える場合は,空行 列が返される。

Mapping Function: isinf (x)

x内の無限大(Inf)要素について1を,それ以外について0を返す。 以下に例を示す。

 
isinf ([13, Inf, NA, NaN])
     ⇒ [ 0, 1, 0, 0 ]

Mapping Function: isnan (x)

xの要素がNaNであれば1,それ以外は0を返す。 以下に例を示す。

 
isnan ([13, Inf, NA, NaN])
     ⇒ [ 0, 0, 0, 1 ]

Mapping Function: finite (x)

有限値であるxの要素について1を返し,そうでなければ0を返す。 以下に例を示す。

 
finite ([13, Inf, NA, NaN])
     ⇒ [ 1, 0, 0, 0 ]

Loadable Function: find (x)

ある行列のゼロでない要素のインデックスのベクトルを返す。行列の各要素に ついて1個のインデックスを得るために,Octaveは,行列の列が(Fortran配列 が格納されているように)1個の長いベクトルであると偽装する。たとえば, 以下のようになる。

 
find (eye (2))
     ⇒ [ 1; 4 ]

もし2つの出力が要求されたならば,findは,行列のゼロでない要素の 行と列のインデックスを返す。以下に例を挙げる。

 
[i, j] = find (2 * eye (2))
     ⇒ i = [ 1; 2 ]
     ⇒ j = [ 1; 2 ]

もし3つの出力が要求されたならば,findは,ゼロでない値を含む ベクトルも返す。

 
[i, j, v] = find (3 * eye (2))
     ⇒ i = [ 1; 2 ]
     ⇒ j = [ 1; 2 ]
     ⇒ v = [ 3; 3 ]

Function File: [err, y1, ...] = common_size (x1, ...)

全ての入力引数がスカラ,あるいは共通のサイズかどうかを判別する。もし そうであればerrはゼロであり,yiは,入力引数がスカラならば 全要素がxiに等しい共通サイズの行列となり,そうでなければxi である。もし入力が共通のサイズでなければ,エラーコードは1であり,yixiとなる。以下に例を挙げる。

 
[errorcode, a, b] = common_size ([1 2; 3 4], 5)
⇒ errorcode = 0
⇒ a = [ 1, 2; 3, 4 ]
⇒ b = [ 5, 5; 5, 5 ]

これは,引数がスカラあるいは共通サイズをとるような関数の実装に役立つ。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated on July, 20 2006 using texi2html 1.76.