我想在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')。关于如何做到这一点的任何想法? 谢谢
答案 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;
给出如下情节: