разреженный

Создайте разреженную распределенную или codistributed матрицу

Синтаксис

SD = sparse(FD)
SC = sparse(m,n,codist)
SC = sparse(m,n,codist,'noCommunication')
SC = sparse(i,j,v,m,n,nzmax)
SC = sparse(i,j,v,m,n)
SC = sparse(i,j,v)

Описание

SD = sparse(FD) преобразовывает полный распределенный или codistributed массив FD в распределенное разреженное или codistributed (соответственно) массив SD.

SC = sparse(m,n,codist) создает m-by-n разреженный codistributed массив базового класса дважды, распределенный согласно схеме, заданной codistributor codist. Для получения информации о построении codistributor объекты, смотрите страницы с описанием для codistributor1d и codistributor2dbc. Эта форма синтаксиса является самой полезной в spmd, pmode, или связывающемся задании.

SC = sparse(m,n,codist,'noCommunication') создает m-by-n разреженный codistributed массив, таким образом заданный выше, но не выполняет глобальной связи для проверки ошибок при построении массива. Эта форма синтаксиса является самой полезной в spmd, pmode, или связывающемся задании.

SC = sparse(i,j,v,m,n,nzmax) векторы использования i и j, чтобы задать индексы и v, чтобы задать значения элемента, для генерации m-by-n разреженная матрица, таким образом, что SC(i(k),j(k)) = v(k), с местом, выделенным для ненулей nzmax. Если какой-либо из входных векторов, i, j или v являются codistributed, выходная разреженная матрица SC, является codistributed. Векторы i, j и v должны быть той же длиной. Любые элементы v, которые являются нулем, проигнорированы, наряду с соответствующими значениями i и j. Любые элементы v, которые имеют дублирующиеся значения i и j, добавляются вместе.

Чтобы упростить этот вызов с шестью аргументами, можно передать скаляры для аргумента v и одного из аргументов i или j, в этом случае они расширены так, чтобы i, j и v у всех была та же длина.

SC = sparse(i,j,v,m,n) использование nzmax = max([length(i) length(j)]).

SC = sparse(i,j,v) использование m = max(i) и n = max(j). Максимумы вычисляются, прежде чем любые нули в v удалены, таким образом, одной из строк [i j v] может быть [m n 0], гарантировав, что матричный размер удовлетворяет требования m и n.

Примечание

Чтобы создать разреженный codistributed массив базового логического класса, сначала создайте массив базового класса дважды и затем бросьте его с помощью функции logical:

spmd
    SC = logical(sparse(m,n,codistributor1d()));
end

Примеры

С четырьмя рабочими,

spmd(4)
    C = sparse(1000,1000,codistributor1d())
end

создает codistributed разреженный двойной массив 1000 на 1000 C. C распределяется его вторым измерением (столбцы), и каждый рабочий содержит 1000 250 локальную часть C.

spmd(4)
    codist = codistributor1d(2,1:numlabs)
    C = sparse(10,10,codist);
end

создает 10 10 codistributed разреженный двойной массив C, распределенный его столбцами. Каждый рабочий содержит 10 labindex локальной частью C.

Преобразуйте распределенный массив в разреженный распределенный массив:

R = rand(1000,'distributed');
D = floor(2*R); % D also is distributed
SD = sparse(D); % SD is sparse distributed

Создайте разреженный codistributed массив из векторов индексов и распределенный массив значений элемента:

r = [ 1  1  4  4 8];
c = [ 1  4  1  4 8];
v = [10 20 30 40 0];
V = distributed(v);
spmd
    SC = sparse(r,c,V);
end

В этом примере, даже при том, что Пятый элемент массива значения v 0, размер результата 8 8 матрица из-за соответствующих максимальных индексов в r и c. Матричный SC рассматривается codistributed, когда просматривается в блоке spmd и распределил, когда просматривается из клиентской рабочей области. Чтобы просмотреть полную версию матрицы, функция full преобразовывает этот распределенный разреженный массив в полный распределенный массив:

S = full(SC)
    10     0     0    20     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
    30     0     0    40     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0

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

| |

Представленный в R2006b