Main Content

nnz

非ゼロ行列要素の数

説明

N = nnz(X) は、行列 X の非ゼロ要素の数を返します。

すべて折りたたむ

単位行列を作成し、その中に含まれる非ゼロの数を判別します。

X = eye(4)
X = 4×4

     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

N = nnz(X)
N = 4

nnz を関係演算子とあわせて使用し、条件を満たしている行列要素の数を判別します。関係演算子は 1 と 0 から成る logical 行列を生成するため、関数 nnz は 1 (条件が true) の数をカウントします。

行列を作成し、10 より大きい要素の数を特定します。

X = magic(5)
X = 5×5

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

nnz(X>10)
ans = 15

行列の密度は、非ゼロの総要素数に対する比率、すなわち nnz(X)/numel(X) です。

L 型領域の有限差分ラプラシアンを表すスパース行列を作成し、その密度を計算します。

X = delsq(numgrid('L',20));
spy(X)

Figure contains an axes object. The axes object with xlabel nz = 1143 contains a line object which displays its values using only markers.

d = nnz(X)/numel(X)
d = 0.0194

結果からは、行列の要素のうち約 2% のみが非ゼロであることがわかります。

入力引数

すべて折りたたむ

入力行列。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | calendarDuration
複素数のサポート: あり

拡張機能

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

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

参考

| | | |