红外数组稀疏阵列
#include“matrix.h”void mxsetir(mxarray * pm,mwindex * ir);
#include“fintrf.h”子程序mxSetir(PM,IR)MWPointer PM,IR
下午
指向稀疏的指针mxarray.
IR.
指向这一点IR.
大批。这IR.
数组必须以列主要订单排序。
用MXSetir.
指定IR.
稀疏的数组mxarray.
。这IR.
数组是一个整数数组;的长度IR.
阵列等于值nzmax.
,为稀疏阵列分配的存储,或NNZ.
,非零矩阵元素的数量。
每个元素都在IR.
数组表示可以找到非零元素的行(偏移量1)。(这JC.
数组是一个间接指定可以找到非零元素的列的索引。看mxsetjc.
有关更多细节JC.
。)
例如,假设您创建一个7.
-经过-3.
疏mxarray.
命名麻雀
通过键入包含六个非零元素:
Sparrow = Zeros(7,3);麻雀(2,1)= 1;麻雀(5,1)= 1;麻雀(3,2)= 1;麻雀(2,3)= 2;麻雀(5,3)= 1;麻雀(6,3)= 1;Sparrow =稀疏(麻雀);
这PR.
数组保存稀疏矩阵的实际数据,在麻雀
是五个1和一个2.如果有任何非零的虚构数据,那么它就在了PI.
大批。
下标 |
IR. |
PR. |
JC. |
注释 |
---|---|---|---|---|
(2,1) |
1 |
1 |
0. |
第1列; |
(5,1) |
4. |
1 |
2 |
第1列; |
(3,2) |
2 |
1 |
3. |
第2栏; |
(2,3) |
1 |
2 |
6. |
第3栏; |
(5,3) |
4. |
1 |
第3栏; |
|
(6,3) |
5. |
1 |
第3栏; |
请注意每个元素IR.
数组始终比相应的非零元素的行少1。例如,第一个非零元素位于第2行;因此,第一个元素IR.
是1(即2 - 1)。第二个非零元素在第5行;因此,第二个元素IR.
是4(5 - 1)。
这IR.
数组必须是列主要订单。这IR.
数组必须首先定义列1(如果有的话)中的行位置,然后在列2(如果有)第二,依此类推,通过列N.在每个列内,行位置1必须出现在行位置2之前,等等。
MXSetir.
不清楚IR.
阵列为您;您必须指定一个IR.
已排序的数组。
此函数不会为其移位的现有数据分配任何内存。释放现有内存,呼叫mxfree.
在返回的指针上mxgetir.
在你打电话之前MXSetir.
。
看到这些例子
:matlabroot.
/ extern / simem / mx
看到这些例子
:matlabroot.
/ extern / simem / mex