Matlab求未知函数曲线极大值我有几千组数据,进行matlab滤波后得到了一个光滑的曲线,曲线有极大值极小值,想要获取这些极大值极小值的(x,y)坐标,有没有相应代码实现,函数未知

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 22:16:17
Matlab求未知函数曲线极大值我有几千组数据,进行matlab滤波后得到了一个光滑的曲线,曲线有极大值极小值,想要获取这些极大值极小值的(x,y)坐标,有没有相应代码实现,函数未知

Matlab求未知函数曲线极大值我有几千组数据,进行matlab滤波后得到了一个光滑的曲线,曲线有极大值极小值,想要获取这些极大值极小值的(x,y)坐标,有没有相应代码实现,函数未知
Matlab求未知函数曲线极大值
我有几千组数据,进行matlab滤波后得到了一个光滑的曲线,曲线有极大值极小值,想要获取这些极大值极小值的(x,y)坐标,有没有相应代码实现,函数未知

Matlab求未知函数曲线极大值我有几千组数据,进行matlab滤波后得到了一个光滑的曲线,曲线有极大值极小值,想要获取这些极大值极小值的(x,y)坐标,有没有相应代码实现,函数未知
代码发给你邮箱了,请查收

clc;
x=linspace(0,6*pi,200);%可换成你的数据
y=sin(x)+randn(1,200)*0.05; %可换成你的数据
n=length(x);
i_min=[];
i_max=[];
x_min=[];
y_min=[];
x_max=[];
y_max=[];
for i=2:n-1,<...

全部展开

clc;
x=linspace(0,6*pi,200);%可换成你的数据
y=sin(x)+randn(1,200)*0.05; %可换成你的数据
n=length(x);
i_min=[];
i_max=[];
x_min=[];
y_min=[];
x_max=[];
y_max=[];
for i=2:n-1,
if y(i) i_min(length(i_min)+1)=i;
end
if y(i)>y(i-1) && y(i)>y(i+1)
i_max(length(i_max)+1)=i;
end
end
x_min=x(i_min);
y_min=y(i_min);
x_max=x(i_max);
y_max=y(i_max);
plot(x,y);grid on;axis tight;
hold on;
plot(x_min,y_min,'bo',x_max,y_max,'ro');

收起

假设你几千组数据存储在数组xy,其中第一列是xdata,第二列是ydata。
解决你问题的matlab代码如下:
首先需要将xdata递增排序,并和原来ydata对应;
xdata = xy(:,1);
[xdata ind] = sort(xdata);
ydata = xy(:,2);
ydata = ydata(ind);
ln = l...

全部展开

假设你几千组数据存储在数组xy,其中第一列是xdata,第二列是ydata。
解决你问题的matlab代码如下:
首先需要将xdata递增排序,并和原来ydata对应;
xdata = xy(:,1);
[xdata ind] = sort(xdata);
ydata = xy(:,2);
ydata = ydata(ind);
ln = length(ind);
polarmax = zeros(ln,2); %存储极大值点的x坐标和y坐标;
polarmin = zeros(ln,2); %存储极小值点的x坐标和y坐标;
m = 0;
n = 0;
for k = 1:ln
if k == 1
if ydata(k) > ydata(k+1)
m = m+1;
polarmax(m,:) = xy(k,:);
elseif ydata(k) < ydata(k+1)
n = n+1;
polarmin(n,:) = xy(k,:);
end
elseif k if ydata(k-1) < ydata(k) && ydata(k) > ydata(k+1)
m = m+1;
polarmax(m,:) = xy(k,:);
elseif ydata(k-1) > ydata(k) && ydata(k) < ydata(k+1)
n = n+1;
polarmin(n,:) = xy(k,:);
end
else
if ydata(k-1) > ydata(k)
m = m+1;
polarmax(m,:) = xy(k,:);
elseif ydata(k-1) < ydata(k)
n = n+1;
polarmin(n,:) = xy(k,:);
end
end
end

收起

你是离散的数据,使用max和min函数就可以求出来了,如果具有多个极值的话,建议使用diff函数进行求导,然后通过导数等于0找到极值点。
y=sin(0:0.01:20);
find(diff(sign(diff(y)))==-2)+1
这是一种求极值的方法,你看看吧

Matlab求未知函数曲线极大值我有几千组数据,进行matlab滤波后得到了一个光滑的曲线,曲线有极大值极小值,想要获取这些极大值极小值的(x,y)坐标,有没有相应代码实现,函数未知 Matlab求未知曲线的极大值坐标我用simulink仿真得到了一个曲线,曲线方程未知,现要求找出曲线的极大值坐标(x,y),曾试图徒手找,太麻烦,所以想通过编程来找,该怎么找求具体程序。 matlab中求函数极大值用什么函数 如何用matlab求曲线的正态分布函数.我有一条曲线形如:如何求其状态分布函数 怎样用MATLAB求极大值 怎样在Matlab中求函数的极大值有函数 y=x*sin(x) 求在0 我遇到了这样的问题:是有关matlab求未知曲线长度的.根据给我的一些数据,我用三次样条插值法绘出了一条曲线,不知道函数形式,现在想要求出该曲线的长度,手头仅有该曲线的一系列散点值, 如何使用matlab中的lsqcurvefit函数本人完全不会.只是要拟合一条未知曲线 只知道是曲线且有x、y的坐标 然后怎么用lsqcurvefit呢? MATLAB求极大值并输出所有极大值及其坐标紧急需要求MATLAB矩阵中各个极大值点的程序(是离散点,不是函数)并输出其坐标! 已知对应函数值,如何用matlab 画出该函数的大致图像已经知道一未知函数的N对XY值,想用matlab画出该函数的大致图像,但是我对matlab一点都不懂.PS:N值还蛮大的,了解未知函数图像的大致走向有 matlab求函数的参数!有一个已知形式的函数和一组对应的x,y.用matlab求函数里未知的参数.搞了一天了,头都大了! matlab的知道函数表达式,求未知系数,老是出错,怎么回事? 函数y=x-arctanx在(-无穷,+无穷)内是书说有极小值0和极大值4请问极大值是怎么求的?我算出来的极大值是2? 怎么用MATLAB求多元函数极值求z=x^2-(y-1)^2的极值,包括极大值和极小值,用MATLAB怎么编程? 求matlab分段线性逼近曲线函数代码 曲线函数函数如下y=x+0.1xx, 根据曲线利用最小二乘法辨识出其函数?(matlab程序)曲线是这样的如果需要这条曲线的相关数据的话,我有可以给,这条曲线就是根据一推数据画出来的. 参数函数极大值极小值怎么求 mathematica求未知函数若我有一个未知函数X(t),函数Y(t),Z(t)都可用X表示,还有一个函数H(t)已知,且满足H=Y+Z,怎么求X