find

Функция нахождения определенных элементов массива

Синтаксис:

Ar = find(M);
Ar = find(M, B);
Ar = find(M, B, Num);
Ar = find(M, B, Num, LF);
Ar = find(Vec, i, Cond, Num, LF);
Ar = find(M, i, j, Cond, Num, LF);

Аргументы:

M - массив (вектор или матрица) вещественных чисел;

B - двоичное значение (True/False), если False, то функция получает индексы нулевых элементов, если True - ненулевых;

Num - целое число, задает количество элементов, которое нужно найти;

LF - строковый аргумент, допустимые значения: "L", "F"; задает то, какие элементы нужно выводить: первые (F) или последние (L);

i,j - цикловые переменные целого типа, для перебора значений вектора (i) или матрицы (i,j);

Cond - условие поиска.

Описание:

find(M) – функция возвращает индексы ненулевых элементов матрицы или вектора M. Если M - матрица, то результат - столбец. Если М - вектор, то результат - строка;

find(M, B) – функция возвращает индексы нулевых (если B = False) или ненулевых (если B = True) элементов матрицы или вектора M;

find(M, B, Num) – возвращает первые Num индексов ненулевых или нулевых (в зависимости от B) элементов матрицы или вектора M;

find(M, B, Num, LF) - возвращает первые (если LF = "F") или последние (если LF = "L") Num индексов ненулевых или нулевых (в зависимости от B) элементов матрицы или вектора M;

find(Vec, i, Cond, Num, LF) - возвращает первые или последние (в зависимости от LF) Num индексов элементов вектора M, которые удовлетворяют условию Cond. Адресация к элементам вектора в условии Cond происходит с использованием индексной переменной i;

find(M, i, j, Cond, Num, LF) - возвращает первые или последние (в зависимости от LF) Num индексов элементов матрицы M, которые удовлетворяют условию Cond. Адресация к элементам матрицы в условии Cond происходит с использованием индексных переменных i и j.

Примечание: нумерация элементов массивов происходит по столбцам сверху вниз, начиная с левого.

Результат:

Функция возвращает массив-строку, если входной массив является вектором и массив-столбец, если входной массив является матрицей.

Пример:

var
i: integer,
j: integer;

M = [[1 2 0];[4 0 6];[0 8 9];[10 11 12]];
Vec = [1 2 3 0 4 5 0 7 0 0 10];

Ar1 = find(M);   // возвращает индексы ненулевых элементов матрицы (в столбец)
Ar2 = find(Vec); // возвращает индексы ненулевых элементов вектора (в строку)
Ar3 = find(M, False); // возвращает индексы нулевых элементов матрицы
Ar4 = find(M, True, 4); // возвращает первые 4 индекса ненулевых элементов матрицы
Ar5 = find(M, True, 4, "l"); // возвращает последние 4 индекса ненулевых элементов матрицы
Ar6 = find(Vec, i, (Vec[i]>3) and (Vec[i]<10), 2, "l"); // возвращает 2 последних элемента вектора, соответствующих условию ((Vec[i]>3) and (Vec[i]<10))
Ar7 = find(M, i, j, (M[i][j]>3) and (M[i][j]<10), 3, "l"); // возвращает 3 последних элемента матрицы, соответствующих условию ((M[i][j]>3) and (M[i][j]<10))

В скрипте примера происходит нахождение элементов массивов, соответствующих заданным условиям.