我被给予了
x = 2:0.1:10
y = sin(x)
并被要求绘制此函数,并在x轴上方用绿色填充表示正弦,在x轴下方用洋红色填充表示正弦。
由于我们刚开始使用matlab,因此着色不一定是精确的,但应覆盖函数和轴之间的大部分区域。
我的问题是,为什么这是正确的:
fill([2 2 2.6 pi],[0 sin(2)sin(2.6)0],'g');
为什么我必须在x值中放入两个2,为什么y值以0开始和结束?
我发现很难理解这些数字的来源,因为对于第二个领域,
fill([pi 3.9 3 * pi / 2 5.5 2 * pi],[0 sin(3.9)-1 sin(5.5)0],'m');
对于x值,我不必两次输入相同的数字,但对于y值,我仍必须输入零。
如果有人能解释选择此数据的方式和原因,我将不胜感激。
答案 0 :(得分:0)
第一个字段用于所有x值,第二个字段用于所有y值。这些值形成有序对,定义要填充的形状的角的坐标。
例如,第二个例子
fill([pi 3.9 3 * pi / 2 5.5 2 * pi],[0 sin(3.9)-1 sin(5.5)0],'m');
有死角
答案 1 :(得分:0)
在这些示例的作者选择绘制垂直边缘的任何地方,都有重复的x
值(根据定义,垂直意味着x不变)。无论作者选择哪一个位置填满直到x轴(根据定义,y值为0),y
值都为零。在第二个示例中,或者上。
要看到这一点,对于您的每个示例,请取x值和y值,并将它们看作是一系列x,y对,如下所示(在第一个示例中):
>> [x(:), y(:)]
ans =
2.0000 0
2.0000 0.9093
2.6000 0.5155
3.1416 0
现在可以理解,每一行都为您提供了您要填充的多边形的一个顶点的坐标。将每个坐标点与绘制的图形进行比较。
如果练习的目的总是要填充到x轴上或下到x轴上,那么您通常 期望在开始和结束时都重复x
值, -但是在您给出的两个特定示例中,y
似乎已经变为零(在第一个示例的末尾,以及在两个示例中第二个示例的开头和结尾)。可以在x轴上绘制额外的零长度边缘,这是允许的(也许更一致,更容易混淆),但这是多余的,因此作者选择忽略它们。