如何在fplot matlab的限制下添加标记?

时间:2014-01-11 20:55:18

标签: matlab markers limits

我想在matlab中的函数极限处添加标记。我正在使用fplot绘制函数,这是我尝试过的:

user_func     = '2*x-3';
user_limits   = '-2,2';
user_limits   = regexp(user_limits, '\,', 'split');
user_limit(1) = str2num(user_limits{1});
user_limit(2) = str2num(user_limits{2});
h = fplot(func,limits);

我试图仅在极限处添加标记(尺寸10颜色'r')。关于如何做到这一点的任何想法? 谢谢

1 个答案:

答案 0 :(得分:1)

不确定这是否正是您要完成的工作,但我稍微修改了您的代码,因此我可以绘制函数(使用匿名函数):

user_func     = @(x) 2*x-3;
user_limits   = '-2,2';
user_limits   = regexp(user_limits, '\,', 'split')
user_limit(1) = str2num(user_limits{1})
user_limit(2) = str2num(user_limits{2})
figure;fplot(user_func,[user_limit(1) user_limit(2)]);

接下来,在您的位置设置刻度并将字体大小更改为10磅:

set(gca,'XTick',[user_limit(1) user_limit(2)],'FontSize',10);

将标签的颜色更改为红色:

set(gca, 'XColor', [1 0 0]);
set(gca, 'YColor', [1 0 0]);

这样你就可以看到刻度线,稍微拉伸x范围:

axis([-2.1 2.1 0 1]); axis 'auto y'


编辑:在OP的一些额外输入后,可以绘制红色刻度标记,如下所示。

首先让x位置在第一个极限上给出:

x1 = user_limit(1);

然后从匿名函数获得第一个标记的y值,如下所示:

y1 = user_func(x1);
y2 = y1;

我们有y2 = y1,因为你想要函数首先穿过x轴的y值是相同的。现在制作这样的情节(使用x2 = user_limit(2)):

hold on;
plot(x1, y1, 'ro', x2, y2,'ro');
hold off;

给出如下情节:

enter image description here