Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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
User interface 如何在MATLAB中选择一个子轴?_User Interface_Matlab_Children_Axes - Fatal编程技术网

User interface 如何在MATLAB中选择一个子轴?

User interface 如何在MATLAB中选择一个子轴?,user-interface,matlab,children,axes,User Interface,Matlab,Children,Axes,我一直在到处寻找,但我找不到一个网站,显示如何做到这一点。 我想要的是,当我点击一个轴时,能够从中选择一个对象,这样我就可以改变它的颜色和内容 我只是不知道如何选择子对象,我可以创建对象,但不能选择它们 我有一段代码用来创建一行: coord = ginput (2) x = coord(:,1) y = coord(:,2) hline = line(x,y) 我不确定是否需要在数组中创建对象,以便选择“编辑/删除”。 我相信我需要使用ButtonDownFcn,但可能我做了一些完全错误的事

我一直在到处寻找,但我找不到一个网站,显示如何做到这一点。 我想要的是,当我点击一个轴时,能够从中选择一个对象,这样我就可以改变它的颜色和内容

我只是不知道如何选择子对象,我可以创建对象,但不能选择它们

我有一段代码用来创建一行:

coord = ginput (2)
x = coord(:,1)
y = coord(:,2)
hline = line(x,y)
我不确定是否需要在数组中创建对象,以便选择“编辑/删除”。 我相信我需要使用ButtonDownFcn,但可能我做了一些完全错误的事情

任何帮助都将不胜感激,如果我遗漏了任何信息,请告诉我


谢谢

无需使用
ginput
并提取坐标。这是由图形窗口中的内置“侦听器”自动完成的。假设可以在对象(线、线系列或其他句柄图形对象)上使用
按钮DOWNFCN
属性,这是正确的

尝试创建从(0,0)到(1,1)的简单直线:

然后可以将
按钮DOWNFCN
设置为匿名函数的函数句柄:

set( ...
   hline, ...
   'ButtonDownFcn', @(handle,event)(disp(['You clicked on the line!'])) ...
);
现在试着点击这行。它应该在命令窗口中打印文本

函数至少需要能够接收两个参数:(1)对象本身的句柄(行)和(2)“事件结构”。我相信第二个参数在使用线对象时是空的。但是您的函数仍然需要至少接收这两个参数(即使您不使用它们)

请在此处阅读更多:

您还可以使用自己的函数(文件中的命名函数):


。。。或者,如果(预期)在这两个参数之外还有其他参数,则可以使用结构数组。

是否有类似于“set('selected','on')”的命令允许我手动操作所选对象?@Audel:ButtonDownFcn中定义的函数在第一个参数中接收句柄。可以使用该句柄进一步操纵单击的对象。要使其真正友好,您可以使用上下文菜单。有关更多信息,请参阅。我已修复它!差不多就是这样。非常感谢much@Audel:欢迎光临:)。(谢谢你。我想你的录取让我获得了100多个代表分数…)
set( ...
   hline, ...
   'ButtonDownFcn', @(handle,event)(disp(['You clicked on the line!'])) ...
);
set( ...
   hline, ...
   'ButtonDownFcn', @(handle,event)(namedFunction(handle,event)) ...
);