Массив 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
. Массив 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
-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
, содержащий только три ненулевых элемента. 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.