gpt4 book ai didi

list - 如何在Mathematica中找到局部最小值和列表?

转载 作者:行者123 更新时间:2023-12-02 08:28:13 29 4
gpt4 key购买 nike

我有干涉图像,必须计算可见度。为此,我必须找到强度“振荡”的最小和最大值。

我已经使用FindPeaks函数找到了最大值,但是我不知道如何找到最小值。

img = Import["/home/martin/Dokumentumok/Egyetem/4. félév/Modern fizika labor/15. Kvantumradí­r/Képek/1a.JPG"];
dat = ParallelSum[ImageData[img, "Byte"][[n]], {n, 3456}];
peaks = N[FindPeaks[dat, 1.2, 1.2, 90000]];
Show[{ListLinePlot[dat, AxesLabel -> {"Pixel", "Intenzitas"},ImageSize -> Full, PlotTheme -> "Classic"], ListPlot[Tooltip[peaks], PlotStyle -> {PointSize[0.006], Red}]}]

如果将鼠标悬停在红点上,它将显示强度值和位置。如果我可以用最小值来做同样的事情,那将非常好,但是不幸的是我找不到像FindPeaks这样的函数。

有什么办法吗?

最佳答案

查找最小值的一种古老技巧是查找数据的-1倍最大值。

data = {1, 3, 1, 3};FindPeaks[data]

这使
{{2, 3}, {4, 3}}

为了获得最低使用量,数据取反
FindPeaks[-data]

这使
{{1, -1}, {3, -1}}

x位置正确,但y取反。因此,将y值乘以-1倍。
Map[({x, y} = #; {x, -y}) &, FindPeaks[-data]]

这使
{{1, 1}, {3, 1}}

注意:#和&是Mathematica的简化形式,用于定义名为#的微小函数。对于新用户而言,这可能会有些混乱,但是一旦理解,它就可以快速编写并且易于使用。

关于list - 如何在Mathematica中找到局部最小值和列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30015929/

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