Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português -

Please note that the recommended version of Scilab is 6.0.1. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Sparses Matrix > spcompack

spcompack

圧縮隣接表現に変換する

パラメータ

xadj

長さ (n+1)の整数ベクトル.

xlindx

長さ n+1の整数ベクトル(ポインタ).

lindx

整数ベクトル

adjncy

整数ベクトル

説明

spcompak
使.

// A is the sparse matrix:
A=[1,0,0,0,0,0,0;
   0,1,0,0,0,0,0;
   0,0,1,0,0,0,0;
   0,0,1,1,0,0,0;
   0,0,1,1,1,0,0;
   0,0,1,1,0,1,0;
   0,0,1,1,0,1,1];
A=sparse(A);
//この行列の場合,標準隣接形式は以下のように定義されます:
xadj=[1,2,3,8,12,13,15,16];
adjncy=[1, 2, 3,4,5,6,7, 4,5,6,7, 5, 6,7, 7];
//(sp2adj参照).
// ベクトル xadjの増分は,各列の非ゼロ要素の数を指定します.
// すなわち,列1には 2-1=1個のエントリが存在
//          列2には 3-2=1個のエントリが存在
//          列3には 8-3=5個のエントリが存在
//          列3には 12-8=4個のエントリが存在
//  など
// これらのエントリの行インデックスは隣接ベクトルにより例えば
// 以下のように指定でます
// adjncy (3:7)=adjncy(xadj(3):xadj(4)-1)=[3,4,5,6,7] 
// これは, 列3の5=xadj(4)-xadj(3)個のエントリのインデックスを
// 3,4,5,6,7 としたことを意味します.

// 圧縮表現では,隣接する重複するシーケンスは消去されます.
// ここで,隣接表現では並び 4,5,6,7および7が消去されます.
// 標準構造(xadj,adjncy)は圧縮形式(lindx,xlindx)を受け付けます
lindx=[1, 2, 3,4,5,6,7, 5, 6,7];
xlindx=[1,2,3,8,9,11];
//(Aの列 4 および 7は消去されます).
//Aは(xadj,xlindx,lindx)により再構築できます.
[xadj,adjncy,anz]= sp2adj(A);
adjncy-spcompack(xadj,xlindx,lindx)

参照

  • sp2adj — 疎行列を隣接形式に変換する
  • adj2sp — 隣接形式を疎行列に変換.
  • spget — 疎行列のエントリを取得
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Mar 03 11:00:56 CET 2011