【问题标题】:"Fill" function in MatlabMatlab中的“填充”功能
【发布时间】:2018-11-20 18:03:45
【问题描述】:

我得到了:

x = 2:0.1:10

y = sin(x)

并被要求绘制此函数并用绿色填充 x 轴上方的 sin,洋红色填充 x 轴下方的 sin。

由于我们刚刚开始使用 matlab,因此着色不必精确,但应覆盖函数和轴之间的大部分区域。

我的问题是,为什么这是正确的:

填充([2 2 2.6 pi], [0 sin(2) sin(2.6) 0], 'g');

为什么我必须为 x 值输入两个 2,为什么 y 值以 0 开头和结尾?

我发现很难理解这些数字的来源,因为对于第二个领域,

填充([pi 3.9 3*pi/2 5.5 2*pi], [0 sin(3.9) -1 sin(5.5) 0], 'm');

我不会为 x 值输入两次相同的数字,但仍然必须为 y 值输入零。

如果有人能解释一下如何以及为什么选择这些数据,我将不胜感激。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    在这些示例的作者选择绘制垂直边缘的任何地方都有重复的x 值(根据定义,垂直意味着 x 不变)。在作者选择一直填充到 x 轴(根据定义,y 值为 0)的任何地方,y 值为零。或者 up 在第二个例子中。

    要查看这一点,对于您的每个示例,获取 x 值和 y 值并将它们视为一系列 x,y 对,如下所示(在您的第一个示例中):

    >> [x(:), y(:)]
    
    ans =
    
        2.0000         0
        2.0000    0.9093
        2.6000    0.5155
        3.1416         0
    

    现在了解每一行都会为您提供正在填充的多边形的一个顶点的坐标。将每个坐标点与绘制的图形进行比较。

    如果练习的对象总是填充到或向下填充到 x 轴,那么您通常会期望在开头和结尾处重复 x 值 --- 但是在您给出的两个 特定 示例中,y 似乎 已经 归零(在您的第一个示例结束时,在开始和结束时你的第二个例子)。在 x 轴上绘制额外的零长度边是允许的(并且可能更一致,更少混淆)——但这是多余的,作者选择省略它们。

    【讨论】:

      【解决方案2】:

      第一个字段用于所有 x 值,第二个字段用于所有 y 值。这些值形成了定义要填充的形状的角坐标的有序对。

      比如你的第二个例子

      填充([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)

      【讨论】:

        猜你喜欢
        • 2020-01-17
        • 1970-01-01
        • 1970-01-01
        • 2015-07-08
        • 1970-01-01
        • 2018-11-03
        • 1970-01-01
        • 1970-01-01
        • 2013-06-29
        相关资源
        最近更新 更多