ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

full

スパース行列を非スパース行列に変換

構文

A = full(S)

説明

A = full(S) は、スパース行列 S を、issparse(A) が論理値 0 (false) を返すような、非スパースのストレージ構造に変換します。S が非スパース行列の場合、A は、S と同じになります。

密度が約 3 分の 2 のスパース行列の例を示します。関数 sparse(S) および関数 full(S) は、ほとんど同じバイト数のストレージを必要とします。

S = sparse(double(rand(200,200) < 2/3));
A = full(S);
whos

Name        Size              Bytes  Class     Attributes

  A         200x200            320000  double              
  S         200x200            429624  double    sparse    

詳細

すべて折りたたむ

ヒント

Xmn 列の行列で、nz 個の非ゼロ要素を含んでいる場合、full(X)m*n 個の要素を格納するためのスペースを必要とします。その一方で、sparse(X)nz 個の要素と (nz+n+1) 個の整数を格納するためのスペースを必要とします。

行列の密度 (nnz(X)/numel(X)) によって、行列をスパースとして保存するのが効率的である場合と、非スパースとして保存するのが効率的である場合があります。正確な交差ポイントは、行列のクラスとプラットフォームによって異なります。たとえば、32 ビット MATLAB® の場合、密度が 2/3 未満の double 型のスパース行列に必要なスペースは、非スパースの同じ行列より少なくなります。しかし、64 ビット MATLAB の場合は、非ゼロの要素が半分未満の double 型の行列はスパース行列として保存する方がより効率的です。

参考

|

R2006a より前に導入

この情報は役に立ちましたか?