Массив JC разреженного массива
#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
.
Если на j
1-й столбец разреженного mxArray
имеет любые ненулевые элементы, тогда:
jc[j]
- индекс в ir
, pr
, и pi
(если он существует) первого ненулевого элемента в j
th столбца.
jc[j+1]-1
- индекс последнего ненулевого элемента в j
th столбца.
Для j
1й столбец разреженной матрицы, jc[j]
- общее количество ненулевых элементов во всех предыдущих столбцах.
Количество ненулевых элементов в j
1-й столбец разреженного mxArray
является:
jc[j+1] - jc[j];
Для j
1-й столбец разреженного 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 |
Комментарий |
---|---|---|---|---|
|
|
|
|
Столбец 1 содержит два ненулевых элемента с строками, обозначенными |
|
|
|
|
Столбец 2 содержит один ненулевой элемент с строкой, обозначенной |
|
|
|
|
Столбец 3 содержит три ненулевых элемента с строками, обозначенными |
|
|
|
|
Всего шесть ненулевых элементов. |
|
|
| ||
|
|
|
Как пример намного более разреженного mxArray
, рассмотрим 1000
-by- 8
разреженные mxArray
именованные Spacious
содержащий только три ненулевых элемента. The ir
, pr
, и jc
массивы содержат значения, перечисленные в этой таблице.
Индекс |
ir |
PR |
jc |
Комментарий |
---|---|---|---|---|
|
|
|
|
Столбец 1 не содержит ненулевых элементов. |
|
|
|
|
Столбец 2 содержит один ненулевой элемент с строкой, обозначенной |
|
|
|
|
Столбец 3 содержит один ненулевой элемент с строкой, обозначенной |
|
Столбец 4 не содержит ненулевых элементов. | |||
|
Столбец 5 содержит один ненулевой элемент с строкой, обозначенной | |||
|
Столбец 6 не содержит ненулевых элементов. | |||
|
Столбец 7 не содержит ненулевых элементов. | |||
|
Столбец 8 не содержит ненулевых элементов. | |||
|
Существует три ненулевых элемента во всех. |
Эта функция не освобождает память, выделенную для существующих данных, которые она перемещает. Чтобы освободить существующую память, позвоните mxFree
на указатель, возвращенный mxGetJc
перед вызовом mxSetJc
.
См. эти примеры в
:matlabroot
/ extern/examples/mx
См. эти примеры в
:matlabroot
/ extern/examples/mex