8.255 UNPACK — Распаковать одномерный массив в многомерный
- Описание:
- Сохранить элементы VECTOR в массиве более высокой размерности.
- Стандарт:
- Fortran 95 и более поздние версии
- Класс:
- Функция преобразования
- Синтаксис:
-
RESULT = UNPACK(VECTOR, MASK, FIELD) - Аргументы:
-
VECTOR Должен быть массивом любого типа и размерности один. Он должен содержать не меньше элементов, чем у MASK TRUEзначений.MASK Должен быть массивом типа LOGICAL.FIELD Должен быть того же типа, что и VECTOR, и иметь такую же форму, что и MASK. - Возвращаемое значение:
- Результирующий массив соответствует FIELD с
TRUEэлементами MASK заменёнными значениями из VECTOR в порядке элементов массива. - Пример:
-
PROGRAM test_unpack integer :: vector(2) = (/1,1/) logical :: mask(4) = (/ .TRUE., .FALSE., .FALSE., .TRUE. /) integer :: field(2,2) = 0, unity(2,2) ! result: unity matrix unity = unpack(vector, reshape(mask, (/2,2/)), field) END PROGRAM
- См. также:
- PACK, SPREAD
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.3/gfortran/UNPACK.html