从这个 Matlab 代码:
a=[1:.001:5] ;
f=(1./a)-(a-1) ;
plot(a,f)
我想在(f==0)
图中标记点,假设值a
是未知的,我应该从图中获取。
我希望它看起来像这样:
从这个 Matlab 代码:
a=[1:.001:5] ;
f=(1./a)-(a-1) ;
plot(a,f)
我想在(f==0)
图中标记点,假设值a
是未知的,我应该从图中获取。
我希望它看起来像这样:
使用命令'文本' http://www.mathworks.com/help/matlab/ref/text.html如下,
[~,idx] = find(abs(f)<1e-3);
text( a(idx(1)), f(idx(1)), 'here we touch/cut/cross x-axis')
您可以使用 interp1 找到 f = 0 的点;
a_for_f_equal_zero = interp1(f, a, 0);
line(a_for_f_equal_zero, 0, 'marker', 'o', 'color', 'r', 'linestyle', 'none')
x_lim = get(gca, 'XLim');
y_lim = get(gca, 'YLim');
line(a_for_f_equal_zero * [1,1], [y_lim(1), 0], 'color', 'k') % vertical line
line([x_lim(1), a_for_f_equal_zero], [0,0], 'color', 'k') % horizontal line