外部インタフェース/API リファレンス | ![]() ![]() |
C 言語表示
#include "matrix.h" void mxSetIr(mxArray *array_ptr, int *ir);
引数
array_ptr
スパースなmxArray
のポインタ。
ir
ir
配列のポインタ。ir
配列は、列の大きさの順番にソートされなければなりません。
詳細
mxSetIr
を用いて、スパースなmxArray
のir
配列を指定します。ir
配列は、整数からなる配列です。ir
配列の長さは、nzmax
の値と等しくなります。
ir
配列の各要素は、非ゼロ要素がある行(1によるオフセット)を示します (jc
配列は、非ゼロ要素がある列を間接的に指定するインデックスです。jc
の詳細は、mxSetJcを参照してください)。
たとえば、6個の非ゼロ要素を含むSparrow
いう名前の7行3列のスパースなmxArray
をつぎのようにタイプして作成するとします。
Sparrow=zeros(7,3); Sparrow(2,1)=1; Sparrow(5,1)=1; Sparrow(3,2)=1; Sparrow(2,3)=2; Sparrow(5,3)=1; Sparrow(6,3)=1; Sparrow=sparse(Sparrow);
pr
配列は、スパース行列に対する実数データを保持します。これは、Sparrow
では5個の1と1個の2です。非ゼロの虚数データがある場合は、pi
配列にあります。
サブスクリプト |
ir |
pr |
jc |
コメント |
(2,1) |
1 |
|
|
|
(5,1) |
4 |
|
|
|
(3,2) |
2 |
|
|
|
(2,3) |
1 |
|
|
|
(5,3) |
4 |
|
|
|
(6,3) |
5 |
|
|
ir
配列の各要素は、対応する非ゼロ要素の行よりも常に1小さいことに注意してください。たとえば、最初の非ゼロ要素は行2にあります。そのため、ir
の最初の要素は1(つまり、2-1)です。2番目の非ゼロ要素は行5にあります。そのため、ir
の2番目の要素は4(5-1)です。
ir
配列は、列の大きさの順番でなければなりません。これは、ir
配列は(存在すれば)列1の行の位置を最初に定義し、それから(存在すれば)列2の行の位置を定義し、列Nまで定義することを意味します。各列において、行位置1は、行位置2の前に現れなければなりません。
mxSetIr
は、ir
配列をソートしません。既にソートしてあるir
配列を指定しなければなりません。
例題
examples
ディレクトリのmx
サブディレクトリのmxsetnzmax.c
を参照してください。さらに、examples
ディレクトリのmex
サブディレクトリのexplore.c
を参照してください。
参考
mxCreateSparse
, mxGetIr
, mxGetJc
, mxSetJc
![]() | mxSetImagData | mxSetJc | ![]() |