📄 findmins.m
字号:
function [minVal,minIndex]=findmins(Y,count) %寻找曲线中的谷底点%参数要求:Y --- 是列向量;count --- 谷底的点个数
if count ==0 %错误,个数至少要为1
count=1;
end
[m,n]=size(Y);
%如果是行向量,那么转置为列向量
if(m<n)
Y=Y';
end
Y=double(Y);
B=zeros(size(Y));
nCount=max(size(Y));
for i=3:(nCount-2)
if((Y(i,1)<Y(i+1,1))&(Y(i,1)<Y(i+2,1))&(Y(i,1)<=Y(i-1,1))&(Y(i,1)<Y(i-2,1)) )
B(i,1)=1;
end
end
index=find(B~=0);
if sum(index)==0 %如果没有局部最小值,则返回
minVal = 0;
minIndex = 0;
return;
end
temp=Y(index,1);
A=sort(temp);
%如果A中的元素个数比count少,那么就为count赋值为A的元素个数。
if count > max(size(A))
count=max(size(A));
end
if count ==0
minVal=0;
minIndex=0;
return;
end
for i=1:count %防止有两个相同的谷底
minVal(i,1)=A(i,1);
Y1=Y.*B;
tmpIndex=find(Y1==A(i,1));
minIndex(i,1)=tmpIndex(1,1);
B(tmpIndex(1,1),1)=0;
end
if m<n
minVal=minVal';
minIndex=minIndex';
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -