【问题标题】:Matlab plotting the shifted logistic functionMatlab绘制移位逻辑函数
【发布时间】:2012-01-05 07:52:40
【问题描述】:

我想绘制如图from Wolfram Alpha 所示的移位逻辑函数。

特别是,我希望函数具有以下形式

y = exp(x - t) / (1 + exp(x - t))

其中 t > 0。在链接中,例如,t 为 6。我最初尝试过以下内容:

x = 0:.1:12;
y = exp(x - 6) ./ (1 + exp(x - 6));
plot(x, y);
axis([0 6 0 1])

但是,这与 Wolfram Alpha 的结果不同。这是export of my plot

我不明白我在这里尝试做的事情与绘制移位的正弦和余弦函数(使用相同的技术)之间有什么区别。

我对 Matlab 并不完全陌生,但我通常不会以这种方式使用它。

编辑:我在代码中的 x 值应该是从 0 到 12。

【问题讨论】:

  • 您能否向我们提供您的预期输出和当前输出的图像?我不确定“看起来不一样”的真正含义。
  • 预期输出位于Wolfram Alpha 的第一个链接中。我得到的输出在export of my plot 中。我应该补充一点,我在导出绘图时使用了从 0 到 20 的 x,但我希望能够绘制任何 t > 0 的值。

标签: function matlab plot


【解决方案1】:

您对 Wolfram Alpha 的输入不正确。它被解释为e*(x-6)/(1-e*(x-6))。在 Wolfram Alpha 中使用 plot y = exp(x - 6) / (1 + exp(x - 6)) for x from 0 to 12(参见 here)获得与 MATLAB 中相同的结果。还可以使用axis([0 12 0 1])(或在新绘图上完全不使用轴语句)在 MATLAB 中查看完整结果。

回复您的评论:使用 y = exp(1)*(x - 6) ./ (1 + exp(1)*(x - 6)); 在 MATLAB 中执行您在 Wolfram Alpha 中所做的操作。

【讨论】:

  • 我希望将最初在 WA 中解释的内容绘制在 Matlab 中。
  • @slikz:查看我的编辑,它显示了如何在 MATLAB 中执行此操作,但它看起来不像逻辑函数。
  • 我不确定您编辑中的功能是否有效。 This is the output 我现在收到了。
  • @slikz:这与 Wolfram Alpha 中的链接相同。在 MATLAB 中使用 axis([0 12 0.3 1.7]) 使它们看起来更相似。
【解决方案2】:

fplot 将函数句柄和要绘制的范围作为输入:

>> fplot(@(x) exp(x-6) / (1 + exp(x-6)), [0 12])

fplot 在这种情况下的美妙之处在于您不需要花时间预先计算 y 值;如果需要,您还可以事后从图中提取值(通过获取line handleXDataYData 属性)。

【讨论】:

  • 太好了,这正是我想要的,还有更多!对于那些有兴趣在绘制后从图中获取 x 和 y 值的人,请参阅this article
猜你喜欢
  • 2011-02-09
  • 2012-02-07
  • 2011-04-11
  • 2023-01-09
  • 2018-03-18
  • 2014-12-04
  • 1970-01-01
  • 1970-01-01
  • 2021-07-08
相关资源
最近更新 更多