Массив 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 |
Комментарий |
---|---|---|---|---|
(2,1) |
1 |
1 |
0 |
Столбец 1 содержит два ненулевых элемента со строками, определяемыми |
(5,1) |
4 |
1 |
2 |
Столбец 2 содержит один ненулевой элемент со строкой, определяемой |
(3,2) |
2 |
1 |
3 |
Столбец 3 содержит три ненулевых элемента, со строками, определяемыми |
(2,3) |
1 |
2 |
6 |
Существует шесть ненулевых элементов всего. |
(5,3) |
4 |
1 | ||
(6,3) |
5 |
1 |
Как пример намного более разреженного mxArray
, считайте 1000
-by-8
разреженным mxArray
по имени Spacious
, содержащий только три ненулевых элемента. ir
, pr
и массивы jc
содержат значения, перечисленные в этой таблице.
Индекс |
ir |
PR |
jc |
Комментарий |
---|---|---|---|---|
(73,2) |
72 |
1 |
0 |
Столбец 1 не содержит ненулевых элементов. |
(50,3) |
49 |
1 |
0 |
Столбец 2 содержит один ненулевой элемент со строкой, определяемой |
(64,5) |
63 |
1 |
1 |
Столбец 3 содержит один ненулевой элемент со строкой, определяемой |
2 |
Столбец 4 не содержит ненулевых элементов. | |||
2 |
Столбец 5 содержит один ненулевой элемент со строкой, определяемой | |||
3 |
Столбец 6 не содержит ненулевых элементов. | |||
3 |
Столбец 7 не содержит ненулевых элементов. | |||
3 |
Столбец 8 не содержит ненулевых элементов. | |||
3 |
Существует три ненулевых элемента всего. |
Эта функция не освобождает памяти, выделенной для существующих данных, которые это перемещает. Чтобы освободить существующую память, вызовите mxFree
на указателе, возвращенном mxGetJc
, прежде чем вы вызовете mxSetJc
.
Смотрите эти примеры в
:matlabroot/extern/examples/mx
Смотрите эти примеры в
:matlabroot/extern/examples/mex