如何在Matlab中的用户界面中取得鼠标坐标

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何在Matlab中创建用户界面(GUI)的相关帮助请参见:MA TLAB-->Creating Graphical User Interfaces

下面举例如何在用户界面中取得鼠标点击时的坐标。

1.创建一个简单的GUI

a)在MA TLAB命令行敲入“guide”,可以看到下面的对话框

b)选择GUI with Axes and Menu后,点击“OK”。

c)将它另存为TestFig.fig

d)此时MA TLAB会自动生成一个TestFig.m文件,回头我们要修改其中的代码,现

在先不管它。

e)回到TestFig.fig界面,可以点击右上角的绿色三角按钮,看看运行情况。

2.为按钮设置被点击后执行的代码

a)找到点击Update按钮后执行的代码:用鼠标右击Update按钮后,选择View

Callbacks Callback。

此时MA TLAB自动定位到该按钮被按下后执行的代码处。

b)我们现在修改掉原来的行为,变成记录下用户每次点击鼠标的坐标(用ginput这

个函数可以获得鼠标的坐标),并在界面上画出每个点。

i.我们首先删除这些代码(或者用百分号%注释掉这些代码)

popup_sel_index = get(handles.popupmenu1, 'Value');

switch popup_sel_index

case 1

plot(rand(5));

case 2

plot(sin(1:0.01:25.99));

case 3

bar(1:.5:10);

case 4

plot(membrane);

case 5

surf(peaks);

end

ii.然后在cla;这句代码后面加上下面的代码

% we use points[x, y] to store each point

points = [];

pointNum = 0;

% we want to show all points on the same fig

hold on;

% we also want to fix the region in which points are located

axis([0 1 0 1]);

% 1,2,3 means left, middle, right mouse button is clicked

button = 1;

while(button ~= 3) % user use right click to input the last point % use ginput to get graphical input from mouse

[x, y, button] = ginput(1);

% plot the point

plot(x,y,'bo');

% save

pointNum = pointNum + 1;

points(pointNum, :) = [x y];

end

disp(['These points are stored:']);

disp(points);

完成后像这个样子

c)现在可以测试一下看看了,点击绿色小三角后,先点击Update按钮,然后用鼠标

左键点击界面画点,用右键输入最后一个点。并且可以在MA TLAB的命令行窗口

看到程序输出的所有点的坐标。

3.其他问题

a)如果要运行程序,在MA TLAB命令行窗口输入”TestFig”即可。

b)如果要调出界面窗口并修改之,在MA TLAB命令行窗口输入”guide”后打

开”TestFig.fig”文件即可。

c)由于我们直接删除了部分代码,关闭程序的时候可能会提示错误。

剩下的工作就看你们的了。

相关文档
最新文档