如何为contourf设置uicontextmenu(MATLAB2014b)

问题描述 投票:0回答:1

最初I asked为什么pcolor和contourf不适用于这种方法,我认为它们是同一问题的症状。这不是真的,因此是新问题。

为什么这不适用于contourf? (我如何让它工作?)

axes; 
stuff = uicontextmenu('Parent',ancestor(axes,'figure')); 
stuffm = uimenu('Parent',stuff,'Label','Change something'); 
x = randn(10); 
h = contourf(x);
% pcolor works! contourf does not
%h = pcolor(x) 
set(h,'uicontextmenu',stuff);    
matlab user-interface matlab-figure
1个回答
1
投票

您正在尝试将上下文菜单分配给错误的对象。

contourf所述,docs的第一个输出是“轮廓矩阵”,你想要对象的句柄:

[M,c] = contourf(___)返回轮廓矩阵和轮廓对象c。显示轮廓图后,使用c设置属性。

所以只需按如下方式更改代码:

[~,h] = contourf(x); % 2nd output is the object handle
set(h,'uicontextmenu',stuff);

结果是一个工作上下文菜单:

context menu

注意你也创建了两次轴,我认为在创建上下文菜单时第二次是无意的,修复如下:

ax = axes; % assign new axes to variable for later use
stuff = uicontextmenu('Parent',ancestor(ax,'figure')); % use ax, not new axes
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.