Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab指南:当用户单击时,我如何分散?_Matlab_Click_Matlab Guide_Scatter - Fatal编程技术网

Matlab指南:当用户单击时,我如何分散?

Matlab指南:当用户单击时,我如何分散?,matlab,click,matlab-guide,scatter,Matlab,Click,Matlab Guide,Scatter,我想编程一个新向导项目的“axes1”部分,当用户单击轴时,它会分散轴内的点 我是新来的导游,我不完全了解hObjec、手柄等是如何工作的。到目前为止,我从其他帖子中收集到以下代码: % --- Executes on mouse press over axes background. function axes1_ButtonDownFcn(hObject, eventdata, handles) % hObject handle to axes1 (see GCBO) % event

我想编程一个新向导项目的“axes1”部分,当用户单击轴时,它会分散轴内的点

我是新来的导游,我不完全了解hObjec、手柄等是如何工作的。到目前为止,我从其他帖子中收集到以下代码:

% --- Executes on mouse press over axes background.

function axes1_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to axes1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
%axesHandle  = get(hObject,'Parent');
coordinates = get(hObject,'CurrentPoint'); 
coordinates = coordinates(1,1:2);
scatter(coordinates(1),coordinates(2));
我没有使用“get(hObject,'Parent')”部分,因为在使用图像在轴中显示的情况下使用了该部分,而这不是我的情况

有人能解释一下我怎么做吗


提前感谢您抽出时间

我在几个月前解决了这个问题,但我没有发布解决方案

这比我想象的要容易,我只需将每次鼠标按下存储为
(x,y)
点,然后使用
绘图

% ND = Nodes in the network
ND = zeros(N,2);
ND(1,:) = ginput(1);
plot(ND(1,1),ND(1,2),'ko','MarkerSize',12);
hold on;
for i=2:N
    ND(i,:) = ginput(1);
    plot(ND(i,1),ND(i,2),'ko','MarkerSize',12);
end

这段代码的行为与您想要的有什么不同?先发制人的潜在相关点:
axes1
是否设置了
hold on
设置?此代码应该在鼠标在axes背景上按下时执行。对我来说,这意味着,如果我点击轴,它就会执行,与鼠标箭头的位置无关,它会得到鼠标箭头的坐标,并在点击后散射它们,但它什么也不做。我尝试添加一行代码来检查它是否正确执行(例如,我添加了'a=123'),以便在Matlab屏幕上显示函数是否正确调用,但是什么也没发生,所以我猜轴的工作方式不像我第一次想到的那样简单。
axes1
ButtonDownFcn
属性在指南中明确设置为该函数?如果轴是透明的(
Color=='none'
),它将不会收到单击(它们会转到下面的图)。类似地,如果单击轴中的线或图像,则单击事件将转到该对象,而不是轴本身。我的代码如下:
%---在鼠标按下轴背景时执行。函数axes1_ButtonDownFcn(hObject,eventdata,handles)%hObject handle to axes1(请参见GCBO)%eventdata reserved-将在未来版本的MATLAB%handles结构中定义,带有句柄和用户数据(请参见GUIDATA)%axesHandle=get(hObject,'Parent');坐标=get(hObject,'CurrentPoint');坐标=坐标(1,1:2);散布(坐标(1)、坐标(2))我没有将其更改为透明,是否可以默认设置为透明?