Matlab中的“填充”功能

时间:2018-11-20 18:03:45

标签: matlab

我被给予了

  

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值,我仍必须输入零。

如果有人能解释选择此数据的方式和原因,我将不胜感激。

2 个答案:

答案 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. (pi,0)
  2. (3.9,sin(3.9))
  3. (3 * pi / 2,-1)
  4. (5.5,sin(5.5))
  5. (2 * pi,0)

答案 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轴上绘制额外的零长度边缘,这是允许的(也许更一致,更容易混淆),但这是多余的,因此作者选择忽略它们。