mxSetJc (C and Fortran)

Массив jc разреженного массива

Синтаксис C

#include "matrix.h"
void mxSetJc(mxArray *pm, mwIndex *jc);

Синтаксис языка ФОРТРАН

#include "fintrf.h"
subroutine mxSetJc(pm, jc)
mwPointer pm, jc

Аргументы

pm

Указатель на разреженный mxArray

jc

Указатель на jc массив

Описание

Используйте mxSetJc задавать новый jc массив для разреженного mxArray. jc массив является целочисленным массивом, имеющим n+1 элементы, где n количество столбцов в разреженном mxArray.

Если jстолбец th разреженного mxArray имеет любые ненулевые элементы, затем:

  • jc[j] индекс в ir, pr, и pi (если это существует) первого ненулевого элемента в jстолбец th.

  • jc[j+1]-1 индекс последнего ненулевого элемента в jстолбец th.

  • Для jстолбец th разреженной матрицы, jc[j] общее количество ненулевых элементов во всех предыдущих столбцах.

Количество ненулевых элементов в jстолбец th разреженного mxArray :

jc[j+1] - jc[j];

Для jстолбец th разреженного mxArray, jc[j] общее количество ненулевых элементов во всех предыдущих столбцах. Последний элемент jc массив, jc[количество columns], равно nnz, который является количеством ненулевых элементов в целом разреженном mxArray.

Например, рассмотрите 7- 3 разреженный mxArray названный Sparrow содержа шесть ненулевых элементов, созданных путем ввода:

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);

В следующей таблице перечислены содержимое ir, jc, и pr массивы.

Индекс

ir

PR

jc

Комментарий

(2,1)

1

1

0

Столбец 1 содержит два ненулевых элемента со строками, определяемыми ir[0] и ir[1]

(5,1)

4

1

2

Столбец 2 содержит один ненулевой элемент со строкой, определяемой ir[2]

(3,2)

2

1

3

Столбец 3 содержит три ненулевых элемента со строками, определяемыми ir[3], ir[4], и ir[5]

(2,3)

1

2

6

Существует шесть ненулевых элементов всего.

(5,3)

4

1

  

(6,3)

5

1

  

Как пример намного более разреженного mxArray, рассмотрите 1000- 8 разреженный mxArray названный Spacious содержа только три ненулевых элемента. ir, pr, и jc массивы содержат значения, перечисленные в этой таблице.

Индекс

ir

PR

jc

Комментарий

(73,2)

72

1

0

Столбец 1 не содержит ненулевых элементов.

(50,3)

49

1

0

Столбец 2 содержит один ненулевой элемент со строкой, определяемой ir[0].

(64,5)

63

1

1

Столбец 3 содержит один ненулевой элемент со строкой, определяемой ir[1].

   

2

Столбец 4 не содержит ненулевых элементов.

   

2

Столбец 5 содержит один ненулевой элемент со строкой, определяемой ir[2].

   

3

Столбец 6 не содержит ненулевых элементов.

   

3

Столбец 7 не содержит ненулевых элементов.

   

3

Столбец 8 не содержит ненулевых элементов.

   

3

Существует три ненулевых элемента всего.

Эта функция не освобождает памяти, выделенной для существующих данных, которые это перемещает. Чтобы освободить существующую память, вызовите mxFree на указателе, возвращенном mxGetJc прежде чем вы вызовете mxSetJc.

Примеры

Смотрите эти примеры в matlabroot/extern/examples/mx:

Смотрите эти примеры в matlabroot/extern/examples/mex:

Смотрите также

mxCreateSparse, mxGetIr, mxGetJc, mxSetIr, mxFree

Представлено до R2006a