| 外部インタフェース/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 | ![]() |