exponenta event banner

mxSetJc (C и 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-й столб разреженного mxArray имеет любые ненулевые элементы, то:

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

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

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

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

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

Для j-й столб разреженного mxArray, jc[j] - общее число ненулевых элементов во всех предыдущих столбцах. Последний элемент jc массив, jc[количество столбцов], равно 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:

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