如何找到曲线的拐点
56个观点(过去30天)
显示旧的评论
接受的答案
明星黾
2022年10月4日14:28
编辑:明星黾
2022年10月4日20:40
framelen = 101;
Ys = sgolayfilt(y, 3, framelen);
Dydx = gradient(ys) ./ gradient(x);
选择合适的值
“framelen”
以得到想要的结果。
编辑-
(2022年10月4日20:40)
的例子,
X = linspace(0.9,1.8, 250);%创建数据
y = exp (- (x - 1.3) ^ 2 * 50) / 8 + x + 0.005 * randn(大小(x));%创建数据
%图
%的阴谋(x, y)
%的网格
ydt =去趋势(y, 1);%趋势'y'以促进分析
framelen = 101;%选择合适的值
ydt = sgolayfilt(ydt, 3, framelen);%降噪信号
Dydx =梯度(ydts) ./梯度(x);%计算数值导数
[maxdydx, idxmax] = max(就要);插值指数下限
[mindydx, idxmin] = min(就要);插值指数上限
Idxrng = idxmax: idxmin;
Inflptx = interp1(dydx(idxrng), x(idxrng), 0)%找到拐点x值
Inflpty = interp1(x, y, inflptx)找到拐点y值
数字
情节(x, y,“DisplayName的”,“数据”)
持有在
情节(inflptx inflpty,“+ r”,“MarkerSize”10“DisplayName的”,“拐点”)
持有从
网格
包含(“X”)
ylabel (“Y”)
传奇(“位置”,“最佳”)
.