Main Content

Find Nonzero Elements

配列内の非ゼロ要素を検索

  • Find Nonzero Elements block

ライブラリ:
Simulink / Math Operations

説明

Find Nonzero Elements ブロックは、入力信号の非ゼロ要素をすべて検索し、それらの要素の線形インデックスを返します。入力が多次元信号の場合、Find Nonzero Elements ブロックは非ゼロの入力要素の添字を返す場合もあります。どちらの場合でも、非ゼロの入力値を含む出力端子を表示できます。

Find Nonzero Elements ブロックは可変サイズの信号を出力します。可変サイズの信号に対するサンプル時間は離散でなければなりません。モデルでまだ固定ステップ ソルバーが使用されていない場合は、[コンフィギュレーション パラメーター] ダイアログで固定ステップ ソルバーを選択する必要があります。詳細については、ソルバーの比較およびソルバーの選択を参照してください。

すべて展開する

この例では、Find ブロックを使用して配列内の非ゼロ要素を検索する方法を示します。次のモデルでは、1 ベースの線形インデックスと各非ゼロ要素の値の両方を出力するようブロックが構成されています。

端子

入力

すべて展開する

ブロックがすべての非ゼロ要素を検索する入力信号。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

出力

すべて展開する

Find Nonzero Elements ブロックは非ゼロ要素のインデックスを可変サイズの信号として出力します。[出力データ型] ブロック パラメーターを使用して、出力のデータ型を制御します。

依存関係

既定では、ブロックは最初の出力端子からの線形インデックスを出力します。[インデックスの出力形式][添字付け] に変更すると、代わりにブロックは 2 次元以上の信号の要素インデックスを添字形式で提供します。このモードでは、[入力の次元数] を指定しなければなりません。ブロックは次元ごとに別々の出力端子を作成します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

オプションとして、Find ブロックはすべての非ゼロ要素の値を可変サイズの信号として出力できます。

依存関係

この端子を有効にするには、[ゼロではない入力値に対する出力端子の表示] を選択します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

パラメーター

すべて展開する

メイン

非ゼロの入力値のインデックスの出力形式を選択します。

  • [線形インデックス] を選択すると、任意の次元の信号の要素インデックスがベクトル形式で提供されます。1 次元 (ベクトル) 信号の場合、インデックスはベクトル内の非ゼロの値の位置に対応します。1 つを超える次元の信号の場合、添字からインデックスへの変換は最初の次元に沿って行われます。入力信号の信号次元を知っておく必要はありません。

  • [添字付け] を選択すると、2 次元以上の信号の要素インデックスが添字形式で提供されます。ブロックは各次元の出力端子を表示するので、このオプションを使用するには [入力の次元数] を指定する必要があります。

プログラムでの使用

ブロック パラメーター: IndexOutputFormat
型: 文字ベクトル
値: 'Linear indices' | 'Subscripts'
既定の設定: 'Linear indices'

入力信号の次元数を 1 ~ 32 の正の整数値として指定します。

依存関係

このパラメーターを有効にするには、[インデックスの出力形式][添字付け] に設定します。

プログラムでの使用

ブロック パラメーター: NumberOfInputDimensions
型: 文字ベクトル
値: スカラー
既定の設定: '1'

インデックス モードとして [0 ベース] または [1 ベース] を指定します。

  • [0 ベース] インデックスの場合、0 のインデックスは、入力ベクトルの最初の要素を指定します。1 のインデックスは 2 番目の要素を指定し、以降同様に繰り返されます。

  • [1 ベース] インデックスの場合、1 のインデックスは、入力ベクトルの最初の要素を指定します。2 のインデックスは 2 番目の要素を指定し、以降同様に繰り返されます。

プログラムでの使用

ブロック パラメーター: IndexMode
型: 文字ベクトル
値: 'Zero-based' | 'One-based'
既定の設定: 'Zero-based'

非ゼロの入力値の出力端子の表示と非表示を切り替えます。

  • このチェック ボックスをオフにすると (off)、ブロックは非ゼロの入力値に対する出力端子を非表示にします。

  • このチェック ボックスをオンにすると (on)、ブロックは非ゼロの入力値に対する出力端子を表示します。追加の出力端子は非ゼロの入力要素の値を表示します。

プログラムでの使用

ブロック パラメーター: ShowOutputPortForNonzeroInputValues
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'off'

サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1 に設定します。詳細については、サンプル時間の指定を参照してください。

依存関係

このパラメーターは、-1 以外の値に設定した場合にのみ表示されます。詳細は、サンプル時間が推奨されないブロックを参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
型: string スカラーまたは文字ベクトル
既定の設定: "-1"

データ型

出力データ型を指定します。

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
型: 文字ベクトル
値: 'Inherit: Inherit via internal rule' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32'| 'int64' | 'uint64'| 'fixdt(1,16)'| '<data type expression>'
既定の設定: 'Inherit: Inherit via internal rule'

指定するデータのカテゴリを選択します。

  • 継承 — データ型の規則の継承。Inherit を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になり、そこで継承モードを選択できます。

  • 組み込み — 組み込みデータ型を指定します。Built in を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になり、そこで組み込みデータ型を選択できます。

  • 固定小数点 — 固定小数点データ型。[固定小数点] を選択すると、固定小数点データ型を指定するために使用できる追加のパラメーターが有効になります。

  • — 評価結果がデータ型となる式。[] を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になります。そこに式を入力することができます。

詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[データ型アシスタントを表示] ボタンをクリックします。

この信号のデータ型オーバーライド モードを選択します。

  • [継承] を選択すると、Simulink はコンテキストからデータ型オーバーライド設定を継承します。コンテキストとはブロックのことで、信号を使用している Simulink®Simulink.Signal オブジェクトまたは Stateflow® チャートです。

  • [オフ] を選択すると、Simulink はコンテキストのデータ型オーバーライド設定を無視し、信号に対して指定された固定小数点データ型を使用します。

詳細については、Simulink ドキュメンテーションのデータ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード][組み込み] または [固定小数点] に設定します。

ヒント

個々のデータ型に対してデータ型オーバーライドをオフにする機能により、データ型オーバーライドを適用する際に、モデル内のデータ型をさらに効果的に制御できます。たとえば、このオプションを使用すると、データ型オーバーライド設定にかかわらず、データ型が下流ブロックの要件を満たすことを確認できます。

固定小数点データが符号付きであるか符号なしであるかを指定します。符号付きデータでは正の値と負の値を表現できますが、符号なしデータでは正の値のみを表現できます。

  • [符号付き]。符号付き固定小数点データを指定します。

  • [符号なし]。符号なし固定小数点データを指定します。

詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード] を [Fixed point] に設定します。

量子化された整数をもつ語のビット サイズを指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード][固定小数点] に設定します。

オーバーフローを避け、量子化誤差を最小限に抑えるための固定小数点データのスケーリング方法を指定します。[整数] を選択すると、固定小数点データの 2 進小数点の位置が指定され、小数部の長さが 0 に設定されます。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード] を [Fixed point] に設定します。

ブロックの特性

データ型

Boolean | double | fixed point | integer | single

直達

はい

多次元信号

はい

可変サイズの信号

はい

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2010a で導入