0

从这个 Matlab 代码:

a=[1:.001:5] ;
f=(1./a)-(a-1) ;
plot(a,f)

我想在(f==0)图中标记点,假设值a是未知的,我应该从图中获取。

我希望它看起来像这样:

在此处输入图像描述

4

2 回答 2

0

使用命令'文本' 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')
于 2013-02-23T04:57:34.897 回答
0

您可以使用 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 
于 2014-01-20T13:07:58.747 回答