主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

spalloc

スパース行列に対するメモリの割り当て

説明

年代= spalloc (n新西兰は,新西兰個の非ゼロ要素を保存するスペースのある,すべての要素がゼロのn列のスパース行列年代を作成します。ここで,新西兰> = 1です。

すべて折りたたむ

spallocを使用して,最大20個の非ゼロ要素を保存するスペースをもつ,全要素がゼロの10行10列のスパース行列を初期化します。

S = spalloc(10、10、20);

行列内のいくつかの要素を定義します。

S(1:3, 1:3) =魔法(3)
S =(1, 1) 8(2, 1) 3(3,1) 4(1、2)1(2,2)5(2)9(1、3)6(2、3)7(3、3)2

行列内の非ゼロ要素の数を表示します。

n1 = nnz (S)
n1 = 9

行列内の非ゼロ要素に割り当てられたストレージの量を表示します。

n2 = nzmax (S)
n2 = 20

spalloc100年を使用して個の非ゼロ要素のスペースをもつ,全要素がゼロの20行20列のスパース行列を初期化します。

n = 20;S = spalloc (n, n, 5 * n);

次に,ループを使用して,列ごとに最大5個の非ゼロ要素の平均で年代の列を1つずつ埋めていきます。

j = 1:n S(:,j) = [0 (n-5,1);轮(兰德(5、1)));结束

行列年代のスパースパターンをプロットします。ドットは非ゼロ要素を表します。

间谍(S)

图中包含一个轴。坐标轴包含一个类型为line的对象。

行列内の非ゼロ要素の数を表示します。

n1 = nnz (S)
n1 = 54

行列内の非ゼロ要素に割り当てられたストレージの量を表示します。

n2 = nzmax (S)
n2 = 100

入力引数

すべて折りたたむ

行列の行数。非負の整数として指定します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

行列の列数。非負の整数として指定します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

非ゼロ要素のストレージ割り当て。非負の整数として指定します。新西兰の値を0に指定すると,spallocは代わりに新西兰の値を1に設定します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

制限

  • 行列の次元は,nのどちらについても,32ビットプラットフォームでは2 ^还有64ビットプラットフォームでは2 ^ 48-1より小さくなければなりません。

ヒント

  • spallocで作成した行列に複数回代入する場合は,メモリの事前割り当てによって再割り当ての繰り返しを回避できます。ただし,スパース行列への代入はそれでも比較的負荷の高い処理であるため,次のいずれかで簡単に置き換えられる場合は通常は避けてください。

    • 関数稀疏的を1回呼び出す

    • 関数spdiagsを1回呼び出す

    • 一連の行列(スパース行列,密行列,または両方)を1回連結する

拡張機能

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

R2006aより前に導入