Вы пытаетесь присвоить контекстное меню не тому объекту.
Первый вывод contourf
, как отмечено в документах , является "контурной матрицей", вам нужен указатель на объект:
[M,c] = contourf(___)
возвращает матрицу контура и объект контура c
. Используйте c
для установки свойств после отображения контурного графика.
Так что просто измените свой код следующим образом:
[~,h] = contourf(x); % 2nd output is the object handle
set(h,'uicontextmenu',stuff);
Результат - рабочее контекстное меню:
![context menu](https://i.stack.imgur.com/QpUEe.png)
Обратите внимание, что вы также дважды создавали оси, я думаю, что 2-й раз непреднамеренно при создании контекстного меню, исправьте это так:
ax = axes; % assign new axes to variable for later use
stuff = uicontextmenu('Parent',ancestor(ax,'figure')); % use ax, not new axes