迈克在MATLAB图形

图形和数据可视化

请注意

迈克在MATLAB图形已经退休,不会被更新。

FPLOT和朋友

我真的很喜欢的另一个新特性R2016a是升级fplot功能和所有的fplot家族的新成员。

fplot函数已经存在了很长一段时间。的基本思想是通过一个函数将X坐标作为输入并返回Y坐标作为输出。然后fplot将使用这个函数画一条曲线。

fplot (@ (x) sin (x))

这是获得真正有用的“快速”的形状函数,或一个家庭的功能。

fplot (@ (x) besselj (x, 1),[0 2 *π])fplot (@ (x) besselj (x, 2),[0 2 *π])fplot (@ (x) besselj (x, 3),[0 2 *π])fplot (@ (x) besselj (x, 4),[0 2 *π])fplot (@ (x) besselj (x, 5),[0 2 *π])传说显示

除了功能,如果你有符号数学工具箱现在,fplot也可以接受符号变量。这使它甚至更多的权力。例如,我可以复制,阴谋与fplot通过调用一个调用besselj符号变量的域和一个向量的订货。

信谊xfplot (besselj (x, 1:5),[0, 2 *π])传奇显示

fplot的新版本有很多不错的改进,如漂亮的传奇条目在最后两个例子。

当我们第一次显示新的fplot克里夫,他给了它的一个他最喜欢的功能

$ $ tan (sin (x)) +罪(tan (x)) $ $

这就是fplot的先前版本。

这是R2016a版本。

fplot (@ (x)谭(sin (x)) +罪(tan (x)))

正如您可以看到的,它确实一个更好的解决这些棘手的细节部分。标签使用的渐近线,虽然错过了- \π/ 2美元。克里夫喜欢这个函数的原因是,它有点折磨考验!

我们可以得到更多的细节,如果我们放大。

xlim(π/ 2 + (-。2。2)

另一个增强fplot现在可以做参数曲线以及绘制x Y的函数,我们只是通过两个函数。第一个函数将参数值作为输入,并返回X坐标。第二个函数将参数值作为输入,并返回Y坐标。

例如,我可以使用它来创建三次贝塞尔曲线这篇博客。这有点简单的比我那篇文章。尤其是如果你不熟悉等克罗内克张量的产品下载188bet金宝搏。请注意,你需要placelabel函数我早期的博客里写道。

clf pt1 = (5, -10);pt2 = [18;18];pt3 = [38;5);pt4 = [45;15);placelabel (pt1,“pt_1”);placelabel (pt2“pt_2”);placelabel (pt3“pt_3”);placelabel (pt4“pt_4”);xlim(50[0])轴平等的持有cubic_bezier = @ (t, a, b, c, d) * (1 - t)。^ 3+ 3 * b * t ^ 2 * (1 - t)+ 3 * c * t ^ 2 * (1 - t)。t + d *。^ 3;fplot (@ (t) cubic_bezier (t, pt1 (1) pt2 (1) pt3 (1) pt4 (1)),@ (t) cubic_bezier (t, pt1 (2), pt2 (2), pt3 (2), pt4 (2)),1 [0])

但最酷的功能之一的新版本fplot是隐藏的底部文档页面。如果你向下看,你会看到:

另请参阅

功能

没错,现在全家fplot-like功能!

让我们来看看其中的一些新的。

第一个fplot3。用于3 d参数曲线,像我之前写在这些文章的这个博客(link1,link2)。我们只是通过3函数,如下:

fplot3 (@ (t) 3 * cos (t) + cos (10 * t)。* cos (t)@ (t) 3 * sin (t) + cos (10 * t)。* sin (t)@ (t)罪(10 * t)) daspect ((1 1 1))

这是另一个我最喜欢的3 d参数曲线。它的俗称棒球曲线

一个=。4;xfcn = @ (t)罪(π/ 2 -(π/ a) * cos (t))。* cos (t / 2 + * sin (2 * t));yfcn = @ (t)罪(π/ 2 -(π/ a) * cos (t))。*罪(t / 2 + * sin (2 * t));zfcn = @ (t) cos(π/ 2 -(π/ a) * cos (t));fplot3 (xfcn yfcn zfcn,[0 4 *π])轴平等的

还有新的fsurf函数。这意味着,而不是调用山峰生成数组的数据…

[x, y, z] =山峰;

…然后将数据传递给冲浪,……

冲浪(x, y, z) xlim (3 [3]) ylim([3 3])标题(“冲浪(山峰)”)

我可以叫fsurf山峰函数处理。

fsurf (@ (x, y)的峰值(x, y),[3 3 3 3])标题(“fsurf (@ (x, y)的峰值(x, y))”)

这将导致一个非常相似的图片,但是当我们放大看看发生了什么。

重新生成网格的动态放大。冲浪的命令,我们只有原来的调用峰的分辨率。

这使得fplot家庭真正有用的探索与平移和缩放功能。

所有的功能我使用到目前为止已经足够简单写匿名函数。但有时你需要使用更复杂的函数。例如,我的参数方程克莱因瓶为以下的功能:

函数x = klein_xfcn (u, v) mask1 = u <π;mask2 = ~ mask1;r = klein_rfcn (u);x = 0(大小(u));x (mask1) = 6 * cos (u (mask1)) *(1 +罪(u (mask1))) + r (mask1)。* cos (u (mask1))。* cos (v (mask1));x (mask2) = 6 * cos (u (mask2)) *(1 +罪(u (mask2))) + r (mask2)。* cos (v (mask2) +π);
函数y = klein_yfcn (u, v) mask1 = u <π;mask2 = ~ mask1;r = klein_rfcn (u);y = 0(大小(u));y (mask1) = 16 * sin (u (mask1)) + r (mask1)。*罪(u (mask1)) * cos (v (mask1));y (mask2) = 16 * sin (u (mask2));
函数z = klein_zfcn (u, v) r = klein_rfcn (u);z = r。* sin (v);
函数r = klein_rfcn (u) r = 4 * (1-cos (u) / 2);

现在我可以使用fsurf克莱因瓶。

h = fsurf (@klein_xfcn @klein_yfcn @klein_zfcn,[0 0 2 *π2 *π]);camlight轴平等的标题(“克莱因瓶”)

我们可以得到一个更好的主意的形状,使其部分透明。

h。EdgeColor =“没有”;h。FaceColor = [。929年.694 .125];h。FaceAlpha = 5;集(gca),“投影”,“视角”)

有很多东西玩了这些功能,不是吗?我们还没有讨论过fmeshfcontour




发表与MATLAB®R2016a


  • 打印
  • 发送电子邮件