| 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 | ![]() |