您的位置:首页 > 编程语言 > MATLAB

如何利用代码标注 MATLAB 图像上的某些点

2016-04-20 19:54 1016 查看
在 MATLAB 作图时,可利用 Data Cursor 标注曲线上的点。但是,该方式很难用代码实现。在某些情况下(如利用 MATLAB 自带的 Publish 做笔记),需要用代码标注图中的某些点。这时可以利用本文所提的方法。该方法虽比较粗放,但用于做笔记已足够。



简答来说,本文方法是利用 textarrow 来实现的。下面给了一个具体例子。

一、确定箭头的位置

在 MATLAB 中,可以利用 annotation 并配合 textarrow 来标注某个点。 该方式需要箭头的位置。但是,计算箭头的位置比较困难。因此,可手动标注箭头来获取箭头的大致位置。

1、可在想标注的位置添加 Cursor 来标注该点,为手动添加箭头提供参考点。

2、手动标注箭头



标注完毕后的结果如下图所示。



3、查看箭头位置

生成代码,查看箭头位置。



具体箭头位置如下图所示。若图中的四个数字分别为[x1 x2],[y1 y2],则表示箭头从 (x1,y1) 指向 (x2,y2).



二、利用获取的位置画箭头

close all;
x = 0:0.01:2*pi;
y = sin(x);
figure(2);
plot(x,y);
index = find ( x == 2.66); %获取x为2.66时的位置,为获取对应的y值做准备
annotation('textarrow',[0.496428571428571 0.435714285714286],...
[0.784714285714286 0.714285714285714],'String',['x = ',num2str(x(index)),',y = ',num2str(y(index))]);


上述代码得到的图形如下。



三、细调箭头的位置

从上图看到,箭头离 y=sin(x) 曲线有一定的距离。可细调箭头的位置使指示的点更加准确。将上述代码中的最后一句修改为

annotation('textarrow',[0.49 0.425],...
[0.78 0.705],'String',['x = ',num2str(x(index)),',y = ',num2str(y(index))]);


得到的图形如下:



注意:上图中的 cursor 是通过手工加上去的。可以看到,经过简单调节后的箭头位置准确指向了我们想要的点。

结论

该方式可较为快捷地通过代码来标注 MATLAB 曲线中某些点的值。

申明:本博文来自 xinhuasz 的博客,地址为 http://blog.csdn.net/xinhuasz
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: