主要内容

MXSetir(C和Fortran)

红外数组稀疏阵列

C语法

#include“matrix.h”void mxsetir(mxarray * pm,mwindex * ir);

Fortran语法

#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列;IR.是1,因为行是2。

(5,1) 4. 1 2

第1列;IR.是4因为行是5。

(3,2) 2 1 3.

第2栏;IR.是2,因为行为3。

(2,3) 1 2 6.

第3栏;IR.是1,因为行是2。

(5,3) 4. 1

第3栏;IR.是4因为行是5。

(6,3) 5. 1

第3栏;IR.是5,因为行是6。

请注意每个元素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

在R2006A之前介绍