full
スパース行列を非スパース ストレージに変換
説明
例
スパース行列を非スパース ストレージに変換
行列のストレージ形式を変更し、ストレージ要件を比較します。
乱数スパース行列を作成します。MATLAB® のスパース行列の表示ではすべてのゼロが省略され、非ゼロ要素の位置と値が表示されます。
rng default %for reproducibility S = sprand(8,8,0.3)
S = 8x8 sparse double matrix (15 nonzeros)
(2,1) 0.0344
(7,1) 0.4456
(8,1) 0.7547
(2,2) 0.4387
(4,3) 0.7655
(7,3) 0.6463
(8,4) 0.2760
(1,6) 0.9502
(5,6) 0.1869
(8,6) 0.6797
(3,7) 0.3816
(4,7) 0.7952
(8,7) 0.6551
(6,8) 0.4898
(7,8) 0.7094
行列を非スパース ストレージに変換します。MATLAB での行列の表示に新しいストレージ形式が反映されます。
A = full(S)
A = 8×8
0 0 0 0 0 0.9502 0 0
0.0344 0.4387 0 0 0 0 0 0
0 0 0 0 0 0 0.3816 0
0 0 0.7655 0 0 0 0.7952 0
0 0 0 0 0 0.1869 0 0
0 0 0 0 0 0 0 0.4898
0.4456 0 0.6463 0 0 0 0 0.7094
0.7547 0 0 0.2760 0 0.6797 0.6551 0
次の 2 つの形式のストレージ要件を比較します。
A
は 64 個の double (それぞれ 8 バイト)、すなわち バイトのストレージを使用します。S
は、15 個の非ゼロ要素とその位置を表す 24 個の整数について、合計 バイトのストレージを使用します。
whos
Name Size Bytes Class Attributes A 8x8 512 double S 8x8 312 double sparse
入力引数
S
— 変換対象のスパース行列
行列
変換対象のスパース行列。行列として指定します。S
が既に非スパース行列の場合、A
は S
と同じになります。
ヒント
X
がm
行n
列の行列で、nz
個の非ゼロ要素を含む場合、full(X)
にはm*n
個の要素を格納するためのスペースが必要です。その一方で、sparse(X)
はnz
個の要素と(nz+n+1)
個の整数を格納するためのスペースを必要とします。行列の密度 (
nnz(X)/numel(X)
) によって、行列をスパースまたは非スパースのいずれで保存するとより効率的であるかがわかります。正確な境界点は、行列のクラスとプラットフォームによって異なります。たとえば、32 ビット MATLAB® の場合、密度が 2/3 未満の double 型のスパース行列に必要なスペースは、非スパースの同じ行列より少なくなります。しかし、64 ビット MATLAB の場合、非ゼロの要素が半分未満の double 型の行列はスパース行列として保存する方がより効率的です。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
関数 full
は GPU 配列を完全にサポートしています。この関数を GPU で実行するには、入力データを gpuArray
(Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)