next up previous contents
След.: Матричные функции Выше: Функции для работы с Пред.: Функции для работы с   Содержание

Функции сдвига

CSHIFT(ARRAY,SHIFT[,DIM]) -- функция, осуществляющая циклический сдвиг массива. Параметр ARRAY -- массив любого типа. Параметр SHIFT -- целый скаляр, если массив имеет ранг 1 и скаляр или массив на единицу меньшего ранга, если ранг массива больше единицы. Конфигурация массива SHIFT совпадает с конфигурацией исходного массива с удаленным элементом с индексом DIM. Параметр DIM необязательный целый скаляр, не превосходящий ранга массива, по умолчанию равен 1. Результат -- массив того же типа и конфигурации, что и ARRAY. Элементы массива ранга один сдвигаются циклически на число позиций, задаваемое параметром SHIFT. Элементы массива большего ранга сдвигаются вдоль указанного параметром DIM измерения: либо все остальные измерения смещаются на одно число позиций SHIFT, либо для каждого массив SHIFT задает свое число позиций.

Например[14], в результате

V = [1, 2, 3, 4, 5, 6]

V = CSHIFT (V, SHIFT = 2)

получим [3, 4, 5, 6, 1, 2]. А массив M вида

1 2 3
4 5 6
7 8 9

как аргумент CSHIFT(M, SHIFT = -1, DIM = 2) дает

3 1 2
6 4 5
9 7 8

а как аргумент CSHIFT(M, SHIFT = [-1, 1, 0], DIM = 2) дает

3 1 2
5 6 4
7 8 9

EOSHIFT(ARRAY,SHIFT[,BOUNDARY][,DIM]) -- функция нециклического сдвига массива. Параметры аналогичны функции CSHIFT; дополнительный параметр BOUNDARY -- скаляр или массив на единицу меньше размерности и того же типа, что и ARRAY задает значения, которыми следует заменить освободившиеся после сдвига элементы. Может быть опущен для числовых, логического и символьного типов и битовых массивов -- в этих случаях по умолчанию принимаются нули или пробелы.

Например[2], так можно задать нули выше главное диагонали матрицы и единицы в прочих позициях:

INTEGER MATRIX(3,3)

MATRIX = 0

MATRIX(:,1) = 1

MATRIX = EOSHIFT(MATRIX,[0,-1,-2],1,2)



Ilya A. Chernov 2012-12-19
X