sparse

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

    Описание

    пример

    S = sparse(A) преобразует полную codistributed матрицу в разреженную форму путем удаления любых нулевых элементов. Можно сохранить память путем преобразования матрицы, которая содержит много нулей к разреженному устройству хранения данных.

    S = sparse(m,n) создает m- n разреженная матрица codistributed всех нулей.

    S = sparse(i,j,v) создает codistributed разреженную матрицу S от триплетов iJ, и v. Количество строк в S установлен максимальным значением i, и количество строк в S установлен максимальным значением j. Матрице выделили пробел для length(v) ненулевые элементы.

    Каждые из входных параметров iJ, и v должен иметь любой 1 или N элементы, такие, что каждый нескалярный вход имеет то же число элементов.

    S = sparse(i,j,v,m,n) задает размер S как m- n.

    S = sparse(i,j,v,m,n,nz) выделяет место для nz ненулевые элементы. Используйте этот синтаксис, чтобы выделить дополнительное место для ненулевых значений, чтобы быть заполненными в после конструкции.

    S = sparse(___,codist) возвращает codistributed разреженную матрицу. Например, sparse(codistributed(2),codistributed(3),codist) создает codistributed разреженную матрицу 2 на 3 с помощью codistributor объекта codist. Можно использовать этот синтаксис с любым из входных параметров в предыдущих синтаксисах.

    Задайте распределение значений массивов через память о рабочих, использующих codistributor объект codist. Для получения дополнительной информации о создании codistributors, смотрите codistributor1d и codistributor2dbc.

    S = sparse(___,codist,"noCommunication") возвращает codistributed разреженную матрицу, не используя связь между рабочими. Можно задать codist или codist,"noCommunication", но не то и другое одновременно.

    Когда вы создаете очень большие массивы или ваше задание передачи или spmd блок использует многих рабочих, коммуникация рабочего-рабочего может замедлить создание массивов. Используйте этот синтаксис, чтобы улучшать производительность вашего кода путем удаления времени, требуемого для коммуникации рабочего-рабочего.

    Совет

    Когда вы используете этот синтаксис, некоторые шаги проверки ошибок пропущены. Используйте этот синтаксис, чтобы улучшать производительность вашего кода после того, как вы будете моделировать свой код, не задавая "noCommunication".

    Примеры

    свернуть все

    Создайте codistributed разреженную матрицу 1000 на 1000, распределенную ее вторым измерением (столбцы).

    spmd(4)
        C = sparse(1000,1000,'codistributed');
    end

    С четырьмя рабочими каждый рабочий содержит 1000 250 локальную часть C.

    Входные параметры

    свернуть все

    Введите матрицу в виде полного или разреженного codistributed матрица. Если A уже разреженно, затем sparse(A) возвращает A.

    Пары индекса в виде отдельных аргументов codistributed скаляры, векторы или матрицы. Если i и j не скаляры, i(k), j(k), и v(k) задайте значение S(i(k),j(k)) как:

    S(i(k),j(k)) = v(k)

    Если i или j скаляр, функция использует то значение, чтобы указать несколько элементов в S. Например, если только i скаляр, j(k) и v(k) задайте значение S(i,j(k)) как:

    S(i,j(k)) = v(k)

    Если i и j имейте идентичные значения для нескольких элементов в vто sparse агрегировал значения в v это повторило индексы. Поведение агрегации зависит от типа данных значений в v:

    • Для логических значений, sparse применяется any функция.

    • Для двойных значений, sparse применяется sum функция.

    Значения в виде codistributed скаляр, вектор или матрица. Базовый тип v должен быть double или logical.

    Если v не скаляр, i(k), j(k), и v(k) задайте значение S(i(k),j(k)) как:

    S(i(k),j(k)) = v(k)

    Если v скаляр, функция использует то значение, чтобы указать несколько элементов в S. Например, если только v скаляр, i(k) и j(k) задайте значение S(i(k),j(k)) как:

    S(i(k),j(k)) = v

    Любые элементы в v это - нуль, проигнорированы, как соответствующие индексы в i и j.

    sparse определяет номер строк и столбцов в выходной матрице, установлены прежде, чем проигнорировать любые нулевые элементы в v. Поэтому, если вы устанавливаете какие-либо значения в v к 0, не изменится размер выходной матрицы.

    Размер каждой размерности в виде отдельных аргументов codistributed целые числа. Базовый тип m и n должен быть doubleM размер строки, и n является размером столбца. Если вы задаете m, необходимо задать n.

    Если вы не задаете m и n, затем sparse использует значения по умолчанию m = max(i) и n = max(j). Эти максимумы вычисляются перед любыми нулями в v удалены.

    Выделение ресурсов хранения для ненулевых элементов в виде codistributed неотрицательное целое число. Базовый тип m и n должен быть double.

    Значением по умолчанию является max([numel(i), numel(j), numel(v), 1]). nz должен быть больше или быть равен этому значению.

    Для разреженной матрицы S, nnz функция возвращает количество ненулевых элементов в матрице, и nzmax функция возвращает сумму устройства хранения данных, выделенного для ненулевых элементов матрицы. Если nnz(S) и nzmax(S) возвратите различные результаты, затем больше устройства хранения данных может быть выделено, чем на самом деле требуется. Поэтому установите nz только если вы хотите заполнить значения.

    Codistributor в виде codistributor1d или codistributor2dbc объект. Для получения информации о создании codistributors, смотрите страницы с описанием для codistributor1d и codistributor2dbc. Чтобы использовать схему распределения по умолчанию, можно задать codistributor конструктора без аргументов.

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

    | |

    Представленный в R2006b
    Для просмотра документации необходимо авторизоваться на сайте