我更关注编码的no0b方面,所以我提前为愚蠢的问题和/或糟糕的编码实践道歉。基本上,我有一个梦想,能够点击,放置一个点,记录该点的位置,然后再次点击另一点(并记录该点的位置),直到我点击“完成”按钮。但是,我的代码是横向的。Matlab Impoint和Uicontrol
我的按钮是用下面一行创建的。我已经在代码中将变量j设置为1,这是因为我想用CallBack做两件事,所以我想用某种方式指示按钮已被点击(但是,我确实作为一种方法不附于此)。当用户点击按钮时,我真的很想要1)新的隐藏点停止的循环和2)要关闭的图像。 ('Style','pushbutton','Position',[80 0 70 20],'String','Done','CallBack','j = 0;');
我对impoints循环(与我不认为是相关的去除多余的东西)如下:
for k = 1:2*mboxes*nboxes
if j == 0
close(gcf);
break;
elseif j == 1
fprintf('At line 56, j is %d and k is %d\n', j, k)
h = impoint;
setColor(h,'k');
location = h.getPosition;
end
clear h;
end
此刻,我的问题是双重的。真的有三重,但我可以勉强接受第三个问题。问题1是我最关心的问题,我必须在我想完成之前单击按钮,也就是说,我单击按钮,然后在窗口关闭之前设置另一个点。 (换句话说,它比我想要的循环要多一次,我不知道该如何告诉它不要这样做。)问题2,我相信它应该告诉我一些关于它是如何循环的,是当我走的时候,点不会被删除(尽管h似乎在最后被删除)。问题3虽然很美观,但却让我很烦恼,因为在点击我真正想要的地方之前,我一直在图像的左上角(0,0)处出现一个蓝色的点。
任何帮助将是非常非常赞赏。 :)