exponenta event banner

глаз

Идентификационная матрица

Синтаксис

E = eye(sz,arraytype)
E = eye(sz,datatype,arraytype)

E = eye(sz,'like',P)
E = eye(sz,datatype,'like',P)

C = eye(sz,codist)
C = eye(sz,datatype,codist)
C = eye(sz,___,codist,'noCommunication')
C = eye(sz,___,codist,'like',P)

Описание

E = eye(sz,arraytype) создает arraytype единичная матрица с базовым классом двойника, с единицами на главной диагонали и нулями в другом месте.

E = eye(sz,datatype,arraytype) создает arraytype матрица идентификаторов с базовым классом datatype, с единицами на главной диагонали и нулями в другом месте.

Размер и тип массива определяются параметрами аргументов в соответствии со следующей таблицей.

АргументЦенностиОписания
sznЗадает размер массива как nоколо-n матрица.
m,nЗадает размер массива как mоколо-n матрица.
[m n]
arraytype'distributed'Указывает распределенный массив.
'codistributed'Задает распределенный массив с использованием схемы распределения по умолчанию.
'gpuArray'Задает gpuArray.
datatype'double' (по умолчанию), 'single', 'int8', 'uint8', 'int16', 'uint16', 'int32', 'uint32', 'int64', или 'uint64'Задает базовый класс массива, т.е. тип данных его элементов.

E = eye(sz,'like',P) создает матрицу идентификаторов того же типа и базового класса (типа данных), что и массив P.

E = eye(sz,datatype,'like',P) создает единичную матрицу указанного базового класса (datatype) и того же типа, что и массив P.

C = eye(sz,codist) или C = eye(sz,datatype,codist) создает распределенную матрицу идентификаторов указанного размера и базового класса (по умолчанию datatype является 'double'). Объект-распространитель, codistзадает схему распределения для создания распределенного по кодам массива. Сведения о построении объектов coddistributor см. на страницах ссылок для codistributor1d и codistributor2dbc. Для использования схемы распределения по умолчанию можно указать конструктор coddistributor без аргументов. Например:

spmd
    C = eye(8,codistributor1d());
end

C = eye(sz,___,codist,'noCommunication') указывает на то, что при построении распределенного по кодам массива обмен данными между сотрудниками не должен выполняться, и пропускает некоторые шаги проверки ошибок.

C = eye(sz,___,codist,'like',P) создает кодораспределенную единичную матрицу с указанным размером, базовым классом (datatype) и схема распределения. Если либо datatype или аргумент coddistributor опущен, характеристика получена из массива coddistributed P.

Примеры

Создание матрицы распределенных идентификаторов

Создайте распределенную матрицу идентификаторов 1000 на 1000 для базового класса double:

D = eye(1000,'distributed');

Создание матрицы распределенных идентификаторов

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

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

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

Создание распределенного кода 1000 на 1000 uint16 единичная матрица, распределенная по столбцам.

spmd(4)
    codist = codistributor('1d',2,100*[1:numlabs]);
    C = eye(1000,1000,'uint16',codist);
end

Каждый работник содержит 100-по-labindex локальная часть C.

Создать матрицу идентификаторов gpuArray

Создание матрицы идентификаторов 1000 на 1000 gpuArray базового класса uint32:

G = eye(1000,'uint32','gpuArray');
Представлен в R2006b