Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - 日本語


sparse

疎行列を定義

呼び出し手順

sp = sparse(X)
sp = sparse(ij, v)
sp = sparse(ij, v, mn)

引数

X

実数または複素数の通常の(または疎)行列

ij

2列の整数行列 (非ゼロエントリのインデックス)

v

ベクトル

mn

2つのエントリ(行の次元, 列の次元c)を有する整数ベクトル

sp

疎行列

説明

sparseは疎行列を作成するために使用されます. ゼロでないエントリのみが保存されます.

sp = sparse(X) は, 0要素を除外することにより,通常の行列を疎行列に変換します. (Xが既に疎行列の場合, spXとなります).

sp=sparse(ij,v [,mn])は, sp(ij(k,1),ij(k,2))=v(k)となる mn(1)mn(2)列の疎行列 を作成します. ij および vは列の次元が 同じである必要があります. オプションのmnパラメータが指定されない場合, 行列spの次元は,それぞれ ij(:,1) および ij(:,2)の 最大値となります.

  • For the building syntaxes, if several values are given for a same ij position, the sum of theses values is assigned.
  • sparse([],[]) yields the (0, 0) zero sparse matrix, with sparse([],[]) ~= [].
Operating sparse matrices

疎行列に関する操作(結合,加算,等,)は通常の行列と同じ構文により 行ないます.

基本的な関数(abs, min, max, sum, diag,...)は疎行列でも 利用可能です.

(通常の行列と疎行列の)混用も可能です. 結果は処理に応じて通常または疎行列となります.

同じ大きさの通常の行列を含む任意の演算は, 引数(例: sp=sparse(d)), または,結果(例 d= sp + 1.) のどちら についても利便性のために提供されていますが,当然避けるべきです.

更に,要素(sp(r,c))へのランダムアクセス, 特に挿入,は効率的ではありません. このため,性能面の制約があるアクセスでは, 読込みアクセスはspget, 書込みアクセスはsp=sparse(ij, v, mn)による バッチ処理により行う必要があります.

sp = sparse([1,2;4,5;3,10],[1,2,3])
size(sp)

x = rand(2,2);
abs(x) - full(abs(sparse(x)))

// sparse constructor taking a single dense matrix
// removes the zeros.
dense = [0., 1., 0., 0., 0.,
1., 0., 2., 0., 0.
0., 0., 0., 0., 0.
0., 0., 0., 0., -0.5];
sp = sparse(dense)

// complex matrices are also supported
sp = sparse(dense*(1+2*%i))

// for boolean matrices, the boolean sparse matrix
// only stores true values (and removes false values).
dense = [%F, %F, %T, %F, %F
%T, %F, %F, %F, %F
%F, %F, %F, %F, %F
%F, %F, %F, %F, %T];
sp=sparse(dense)

参照

  • full — 疎行列を通常の行列に変換する
  • spget — 疎行列のエントリを取得
  • sprand — ランダム疎行列
  • speye — 疎単位行列
  • diag — 対角行列の構築または展開
  • toeplitz — Toeplitz matrix (chosen constant diagonal bands)
  • sparse(-0) — Processing of -0 versus 0

履歴

バージョン記述
6.0.2 sparse([],[]) now yields the "(0,0) zero sparse matrix" instead of [].
Report an issue
<< sp2adj Sparse Matrix Conversion spcompack >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:43:10 CEST 2023