2013-03-13 160 views
1

我有一组数据或光谱,用于各种x-y坐标。matlab交互式轮廓图

看起来是这样的:

x  y  spectrum x    spectrum y 
-14 -18 35.0286000000000 330.643000000000 
-14 -18 33.6069000000000 311.247000000000 
-14 -18 32.1849000000000 251.419000000000 
-14 -18 30.7628000000000 205.673000000000 
-14 -18 29.3404000000000 152.912000000000 
-14 -18 27.9178000000000 144.101000000000 
-14 -18 26.4949000000000 135.292000000000 
-14 -18 25.0719000000000 133.514000000000 
-14 -16 35.0286000000000 353.507000000000 
-14 -16 33.6069000000000 320.039000000000 
-14 -16 32.1849000000000 272.517000000000 
-14 -16 30.7628000000000 198.642000000000 
-14 -16 29.3404000000000 163.458000000000 
-14 -16 27.9178000000000 135.314000000000 
-14 -16 26.4949000000000 147.592000000000 
-14 -16 25.0719000000000 114.190000000000 

等。

我写了一个程序,采取从每个光谱中的分段的斜率,并作出新的矩阵,看起来像这样:

x  y  slope 
-14 -18 0.650084924302224 
-14 -16 0.751250946346182 
-14 -14 0.0666371921219543 
-14 -12 0.703160656652351 
-14 -10 1.04017251503861 

等。

然后,我使用[C,h] = contourfm(x,y,z)来制作矩阵中的x,y和z矩阵。

我感兴趣的是一个程序,我可以点击等高线图并在距离我点击的地点最近的点拉一个单独的光谱图。这在分析我的数据时会非常好。这是远程可能的吗?在此先感谢您的帮助!

回答

0

是的,有可能你可能需要建立一个图形用户界面,但下面的内容也可能令你满意。从ginput这样的功能开始。例如,[x,y] = ginput(n)使您能够识别当前轴的n个点,并返回x和y列向量中的x和y坐标。按回车键将在输入n个点之前终止输入。然后从这些x,y坐标中,使用find来绘制您所拥有的相关数据部分。

+0

谢谢你,ginput函数非常有用。我能够编写一个程序来获取输入数据,将每个点转换为最接近的实际x-y点,并绘制每个点的数据。编程非常差,必须根据地图的大小和间距进行调整,但它的工作原理!我也能够为这个人物添加一个传奇,但那可能比它值得的更麻烦。我会发布该功能,但它不是很漂亮。 – 2013-03-15 15:07:44