MATLAB Function Reference | ![]() ![]() |
表示
A = full(S)
詳細
A = full(S)
は、スパース行列 S
をフルストレージ編成に変換します。S
がフル行列の場合、そのままで、変換されません。A
がフル行列の場合、issparse(A)
の結果は 0
です。
注意
X
は、nz
=
nnz(X)
個の非ゼロ要素をもつm
行n
列行列であると仮定します。このとき、full(X)
は、m
*n
個の実数値を格納するためのスペースを必要とします。一方、sparse(X)
は、nz
個の実数値と(nz+n)
個の整数を格納するためのスペースを必要とします。
多数のコンピュータ上では、実数値は整数の2倍のストレージを必要とします。このようなコンピュータ上では、行列の密度nnz/prod(size(X))
が 3分の1 小さければ、sparse(X)
が必要とするストレージは、full(X)
よりも少なくなり、密度は、スパースストレージが使用される前の3分の2小さくなります。しかし、スパース行列上での演算は、フル行列よりも要素あたりの実行時間が多くかかります。
例題
密度が約 3分の2 のスパース行列の例を示します。sparse(S)
と full(S)
は、同じバイト数のストレージを必要とします。
S = sparse(rand(200,200) < 2/3); A = full(S); whos Name Size Bytes Class A 200X200 320000 double array (logical) S 200X200 318432 sparse array (logical)
参考
![]() | ftell | fullfile | ![]() |