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. The jc массив является целочисленным массивом, имеющим n+1 элементы, где n количество столбцов в разреженном mxArray.

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

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

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

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

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

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

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

Например, рассмотрим 7-by- 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-by- 8 разреженные mxArray именованные Spacious содержащий только три ненулевых элемента. The 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