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))

结论

在本文中,我们已经找到了如何使用tilde(~)运算符减少某些函数中变量的输出。