mxSetJc (C и Фортран)

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

Смотрите также

mxCreateSparse, mxGetIr, mxGetJc, mxSetIr, mxFree

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

Была ли эта тема полезной?