gpt4 book ai didi

matlab - 命令 A(~A) 在 matlab 中真正做什么

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:51 25 4
gpt4 key购买 nike

我正在寻找找到矩阵的非零最小值的最有效方法,并在论坛上找到了这个:

设数据为矩阵A

A(~A) = nan;
minNonZero = min(A);

这是非常简短和高效的(至少在代码行数方面),但我不明白当我们这样做时会发生什么。我找不到关于此的任何文档,因为它不是 +-\ 等矩阵的操作 ,... 会是。

任何人都可以向我解释或给我一个链接或可以帮助我理解所做的事情的东西吗?谢谢 !

最佳答案

它使用 logical indexing

~ 在 Matlab 中是非运算符。当用于 double 组时,它会发现所有元素都为零。例如:

~[0 3 4 0]

逻辑矩阵中的结果

[1 0 0 1]

即这是找到所有零元素的快速方法

所以如果 A = [0 3 4 0] 那么 ~A = [1 0 0 1] 所以现在 A(~A) = A([1 0 0 1])A([1 0 0 1]) 使用逻辑索引仅影响为真的元素,因此在本例中为元素 1 和元素 4。

最后,A(~A) = NaN 会将 A 中等于 0 的所有元素替换为 NaN,这 min 忽略,因此您找到最小的非零元素。

关于matlab - 命令 A(~A) 在 matlab 中真正做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18102153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com