Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
members
配列の各要素または他の配列の行または列を数える(及び位置を調べる)
呼び出し手順
[nb [,loc]] = members(N, H) [nb [,loc]] = members(N, H, "last") [nb [,loc]] = members(N, H, "rows"|"cols") [nb [,loc]] = members(N, H, "rows"|"cols", "last") [nb [,loc]] = members(N, H, "rows"|"cols", "shuffle") [nb [,loc]] = members(N, H, "rows"|"cols", "shuffle", "last")
引数
- N
- Needles: 論理値, 整数エンコードされた数値, 実数または複素数の10進数, 多項式またはテキストの行列またはハイパー行列. "rows"または"cols"モードでは, ハイパー行列は指定できません. 指定した値(または行または列)は - Nの中に 複数回配置することができます.
- H
- Haystack: - Nと同じデータ型の行列またはハイパー行列. "rows" または "cols" モードの場合, ハイパー行列は指定できません.- Nおよび- Hはそれぞれ同じ列または行の数を有する必要があります.
- オプション:
- 以下の1から3個のオプションを順を問わず指定可能です: - "last"
- Nから needlesの- Hの位置を- locで 検索した場合, デフォルトで- Hの中でそれぞれが最初に現れる位置が返されます.
- "rows", "cols"
- デフォルトで, - Nの各要素- N(i, j, ...)は- Hの中で検索する際のneedleとみなされます.- "rows"が検索された場合,- Nの各行はneedleとみなされ, 全体として,- Hの行で検索が行われます.- "cols"が使用された場合,- "cols"が- N及び- Hの列に適用されます.- "cols"を使用した場合,- N及び- Hの列数と同じ部分に 適用されます.
- "shuffle"
- "rows"または- "cols"モードの場合, 行/列の要素のデフォルトの順序が考慮されます: 例えば,- Nの- [ 7 3 5 ]は,- Hの- [3 5 7]にマッチしません.- "shuffle"が指定された場合, 例えば- [3 5 7]の交換は- Nの- [3 5 7]行に一致すると みなされます. このオプションは多項式の場合,無視されます.
 
- nb
- 通常モードの場合: - nb(i, j, ...)は(実数として)- Hにおける- N(i, j, ...)の出現回数 を表します.- nbおよび- Nは同じ形式です.- Hが空の場合, ゼロ行列が返されます.- Nが空の場合, 空の行列- []が返されます.- "rows"または- "cols"モードの場合:- nbは- Nが有する行/列と同じ数の要素を 有する実数の行です.- nb(i)は,- H(., :)の中で- N(i, :)が生じた数 (または- H(:, .)の中で- N(:, i))を返します.
- loc
- 通常のモードの場合: - locおよび- Nは同じ形式を有します.- loc(i, j, ...)は,- N(i, j, ...)がある場所として- Hに最小の線形化された添字を返します.- "last"フラグが使用された場合, 替りに最大の線形化された添字の最大値が返されます.- Hの中に- N(i, j, ...)が見つかれない場合,- loc(i, j, ...)は- 0に設定されます.- "rows"または- "cols"モードの場合:- locは- Nが有する行及び列と同じ 数の要素を有する実数の行です.- loc(i)は,- N(i, :)に一致する最初の 行- H(loc(i), :)の添字 (または- N(:, i)に一致する最初の列- H(:, loc(i))の添字)を返します.- "shuffle"フラグが追加で指定された場合, 行/列に基づく要素の順番は考慮されません.
説明
nb = members(N, H [,"rows"|"cols"]) 
            
            は各要素またはHの中にある
            
            Nの行または列の発生回数を返します.
            
            要素が見つからない場合, 0 が返されます.
            
            N(i,j,...)が現れる最初(デフォルト)または
            
            "last"(最後)のHの添字を,
            
            2番目のオプションの出力locにより取得できます.
            
            "rows" または "cols" 
            
            の一致するものを探す場合,
            
            オプション"shuffle"を使用することにより,
            
            一致の際の要素の順番を無視することができます.
値 %inf および -%inf 
            
            をNの中およびHの中で
            
            使用することができます.
            
            ノーマルモードでは,
            
            %nanがNの中では
            
            サポートされますが,Hの中ではサポートされません. 
            
            "rows" または "cols" モードの場合, 
            
            %nan はどこでもサポートされます.
通常の要素毎のモードの場合, members(..) は,
            
            論理値,
            
            整数エンコードされた数値(8-16-32ビット長の符号ありまたは無し)
            
            および実数を高速に処理するために
            
            dsearch(..) を使用します.
            
            複素数, テキスト, 多項式の場合,
            
            より低速でよりメモリ消費が多いアルゴリズムが使用されます.
            
            これらのデータ型についてより高い性能を得たい場合,
            
            より大きなNまたはHの場合, 
            
            ユーザは
            
            stacksize(..)を増加させることになります. 
            
            計算時間が長い場合, 進行状況の棒グラフが表示されます.
例
N = [1 8 4 5 2 1]; H = [9 7 4 2 1 4]; [nb, loc] = members(N, H, "last") // nb = [1 0 2 0 1 1] を返す: 例えば, Hの中に4が2回現れる. // そして loc = [5 0 6 0 4 5]: 4が最後に現れるのはHの6番目の位置 [nb, loc] = members(N, H) // loc = [5 0 3 0 4 5]を返す: 4が最初に現れるのはHの3番目の位置 // ハイパー行列の場合. 前記の N 及び Hを利用: N = matrix(N, [3 1 2]); H = matrix(H, [3 1 2]); [nb, loc] = members(N, H, "last") // 整数の場合: N = int8(grand(3, 2, "uin", -5, 5)); H = int8(grand(4, 4, "uin", -5, 5)); [nb, loc] = members(N, H) // 多項式の場合 (複素数の係数を指定可能): z = %z; N = [z (1-z)^2 ; -4 %i*z ]; H = [2 %i*z -z 3-z z z^3 z]; [nb, loc] = members(N, H) // テキストの場合: N = [ "Hi" "Hu" "Allo"]; H = [ "Hello" "Bonjour" "Allo" "Holà" "Allo" "Hallo" "Hi" "Hé" "Salud" ]; [nb, loc] = members(N, H, "last") // 行の場合: H = [ 3 3 0 4 1 0 2 0 3 0 1 4 3 4 3 0 4 1 3 1 0 ]; N = [ 1 2 3 0 1 4 3 0 3 4 1 0 2 0 2 ]; N, H [nb, loc] = members(N, H, "rows") [nb, loc] = members(N, H, "rows","last") [nb, loc] = members(N, H, "rows","shuffle") // [4 1 0], [0 1 4] 及び [0 4 1] は同一とみなされる // 列の場合: 定義済みの N 及び H を利用: N = N.', H = H.' [nb, loc] = members(N, H, "cols", "shuffle")
参照
- dsearch — 指定の分類で行列またはハイパー行列の要素を分配, 配置および数える
- intersect — 2つのベクトルで共通の値のベクトルを返す
- find — 論理値ベクトルまたは行列のtrue要素の添え字を見つける
- vectorfind — ベクトルに一致する行列の行または列を見つける
履歴
| バージョン | 記述 | 
| 5.5.0 | members() 関数が導入されました. | 
| Report an issue | ||
| << intersect | setoperations | setdiff >> |