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),“投影”,“视角”)
- 类别:
- 几何