Matlab 两条曲线之间的填充区域

Matlab 两条曲线之间的填充区域,matlab,plot,Matlab,Plot,如果我有3个向量:平均值、平均值+标准偏差和平均值标准偏差,我如何填充平均值+标准偏差和平均值标准偏差之间的空间,并保持第三个审查者“平均值”可见? 我试过这样做 h1 = area(x,y_m); h2= area(x,y_std1); h3= area(x,y_std2); 但它填满了均值+标准差下的整个空间。 在该代码中,y_m=平均值;y_std1=平均值+标准偏差;y_std2=平均标准偏差。这些向量是从excel导入的。类似的内容可能会提供您正在查看的内容 % random dat

如果我有3个向量:平均值、平均值+标准偏差和平均值标准偏差,我如何填充平均值+标准偏差和平均值标准偏差之间的空间,并保持第三个审查者“平均值”可见? 我试过这样做

h1 = area(x,y_m);
h2= area(x,y_std1);
h3= area(x,y_std2);
但它填满了均值+标准差下的整个空间。
在该代码中,y_m=平均值;y_std1=平均值+标准偏差;y_std2=平均标准偏差。这些向量是从excel导入的。

类似的内容可能会提供您正在查看的内容

% random data
x = 0:0.1:10;
y = sin(x);
ystd = ones(size(x))*1;
y_std1 = y+ystd;
y_std2 = y-ystd;

figure
fill([x fliplr(x)],[(y_std1) fliplr(y_std2)],'r'); hold on
plot(x,y)

我发现了类似的东西,但我不明白它是干什么的。在我的例子中,x在0到50之间;而y有很多值。我已经有了偏差标准;我不认为我需要重新计算。好的,那么x,y,ystd是你自己的数据。上面的示例是生成要绘制的内容。我假设您的x值已排序。让我做一个解释性的例子:x=[1234];y1=[1.11.21.31.4];y2=[0.90.80.70.6];[x fliplr(x)]=[1 2 3 4 3 2 1];[y1 fliplr(y2)]=[1.11.21.31.40.60.70.80.9];fliplr反转顺序,填充用于绘制闭合形状,上面的示例生成闭合形状shape@Shika93您需要使用
fill
,因为它允许您填充由x和y坐标定义的形状<代码>区域将填充给定基线的所有空间,这不是您想要的。
fill
的第一个参数取x坐标,第二个参数取y坐标。要绘制闭合形状,需要两次x坐标。一次从左到右,然后再从右到左(使用
fliplr
反转)。y坐标是从L到R的
y_std1
和从R到L的
y_std2
(同样,它们从R到L反向)。这些坐标定义了
fill
绘制的形状的边界