Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.0.0 - 日本語


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" モードの場合: nbN が有する行/列と同じ数の要素を 有する実数の行です. 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" モードの場合: locNが有する行及び列と同じ 数の要素を有する実数の行です. 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 および -%infNの中およびHの中で 使用することができます. ノーマルモードでは, %nanNの中では サポートされますが,Hの中ではサポートされません. "rows" または "cols" モードの場合, %nan はどこでもサポートされます.

通常の要素毎のモードの場合, members(..) は, 論理値, 整数エンコードされた数値(8-16-32ビット長の符号ありまたは無し) および実数を高速に処理するために dsearch(..) を使用します. 計算時間が長い場合, 進行状況の棒グラフが表示されます.

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"    ""    "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 — elements or rows or columns met in both input arrays, without duplicates
  • grep — 文字列のベクトルの中で指定した文字列に一致するかどうかを調べる
  • find — 論理値ベクトルまたは行列のtrue要素の添え字を見つける
  • vectorfind — locates occurences of a (wildcarded) vector in a matrix or hypermatrix

履歴

バージョン記述
5.5.0 members() 関数が導入されました.
Report an issue
<< gsort searchandsort vectorfind >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Mar 07 09:28:43 CET 2023