Документация Engee
Notebook

Игнорирование выходных данных функций

Данный пример показывает, как не учитывать некоторые выходные данные функции, используя оператор тильда (~).


Допустим у нас есть некоторый массив данных. Нам необходимо найти элемент с минимальным значением и его индекс.

In [ ]:
A = rand(5,5)
Out[0]:
5×5 Matrix{Float64}:
 0.923803  0.846264  0.108276  0.491786  0.212166
 0.784039  0.554027  0.242687  0.630576  0.428159
 0.824051  0.142176  0.850137  0.236555  0.2872
 0.641244  0.521024  0.181037  0.841322  0.58738
 0.873873  0.905662  0.488774  0.285788  0.578745

Для поиска элемента с минимальным значением и его индекса существует функция findmin().

In [ ]:
(min, idx) = findmin(A)
Out[0]:
(0.10827560798274083, CartesianIndex(1, 3))

Теперь в рабочей области есть две пременные. В этом случае переменные небольшие. Однако некоторые функции возвращают результаты, которые потребляют гораздо больше памяти. Поэтому для того, чтобы игнорировать выходные данные функции, в любой позиции списка аргумента используйте оператор тильды. В нашем примере можно вывести только индекс минимального значения.

In [ ]:
(~, idx) = findmin(A)
Out[0]:
(0.10827560798274083, CartesianIndex(1, 3))

Вы можете игнорировать любое количество выходных данных функции, используя оператор тильды. А также можно вывести первые N выходных данных функции и игнорировать все остальные выходные данные. В нашем случае можем получить минимальное значение функции без индекса. Таким образом, будет создана только одна переменная.

In [ ]:
minA = findmin(A)
Out[0]:
(0.10827560798274083, CartesianIndex(1, 3))

Вывод

В данном материале мы разобрали, как сократить вывод переменных в некоторых функциях с помощью оператора тильда (~).