我有一个3x1子图,我已经想出了如何捕获鼠标点击坐标并将它们存储到每个轴内的数组中。不过,我想修改我的代码,这样我就可以将来自每个轴的鼠标点击一次全部存储起来。
这是我的代码:
function Callbacks
x = 0:30;
y1 = 1.5*cos(x);
y2 = 1.5*cos(x)*10;
y3 = 1.5*cos(x)*100;
subplot(3,1,1)
plot(x,y1,'ButtonDownFcn',{@lineCallBack,'plot1'})
subplot(3,1,2)
plot(x,y2,'ButtonDownFcn',{@lineCallBack,'plot2'})
subplot(3,1,3)
plot(x,y3,'ButtonDownFcn',{@lineCallBack,'plot3'})
end
function lineCallBack(src,evt,tag_name)
src.Tag = tag_name;
N=2;
P1array = zeros(N,2);
P2array = zeros(N,2);
P3array = zeros(N,2);
for k = 1:N
if strcmp(tag_name,'plot1')
[P1array(k,1),P1array(k,2)] = ginput(1);
hold on;
plot(P1array(k,1),P1array(k,2),'*r')
elseif strcmp(tag_name,'plot2')
[P2array(k,1),P2array(k,2)] = ginput(1);
hold on;
plot(P2array(k,1),P2array(k,2),'*r')
elseif strcmp(tag_name,'plot3')
[P3array(k,1),P3array(k,2)] = ginput(1);
hold on;
plot(P3array(k,1),P3array(k,2),'*r')
end
endOUTPUT
P1array =
1 2
3 4
P2array =
0 0
0 0
P3array =
0 0
0 0如上面的输出所示,点击后,它似乎只捕获我点击的最后一个坐标轴。我希望能够获得所有轴点的值。谁能帮忙?谢谢。