下面的代码突出显示了绘图的某些区域:
x = 1:24;
a = 1;
b = 50;
y = a + (b-1).*rand(length(x),1);
plot(x,y);
%find the peaks in the data and hilghlight the regions
[pks,locs] = findpeaks(y);
for i = 1:length(locs);
h = area([locs(i)-(locs(i)/100) locs(i)+(locs(i)/100)],[max(y) max(y)]);
set(h,'FaceColor',[.5,.5,.5]);
set(h,'EdgeColor',[.5,.5,.5]);
h1 = get(h,'children');
set(h1,'FaceAlpha',0.3);
hold on
end
plot(x,y,'k');
hold off;
axis([min(x) max(x) min(y) max(y)]);
突出显示的区域定义为局部最大值两侧数据长度的 1%。我想进行更改,以便该区域不是由数据的百分比精确指定的,因为这将根据数据集的大小而改变。谁能建议一种替代方法来定义突出显示区域的厚度?