Clearing axes using created pushbutton in S-function

Hi,
I am calling a function clear in S-function which should clear the axes but It does not call the function when the button is pressed and nothing is cleared. Could anyone tell me what's wrong?
%Button:
uicontrol('Parent',m,...
'Style','pushbutton',...
'Units','normalized',...
'Position',[0.15 .15 0.7 0.2],...
'String','erase',...
'Callback',@clear);
%Clear Function:
Function clear()
cla;

 채택된 답변

Sean de Wolski
Sean de Wolski 2012년 1월 27일
Why not just use @cla ? You not only overwrite the VERY IMPORTANT function clear, but you disguise what you're doing. Also when you declare the function, the keyword function is case sensitive.
h = figure;
peaks;
uicontrol('Parent',h,'Style','pushbutton', 'Units','normalized',...
'Position',[0.15 .15 0.7 0.2], 'String','erase', 'Callback',@cla);

추가 답변 (1개)

Walter Roberson
Walter Roberson 2012년 1월 27일
When you specify a Callback function as a function handle or as a cell array, then MATLAB automatically adds passes in two arguments (often called "src" and "event" but the names do not matter). If the routine being called does not support being called with at least two arguments then MATLAB will error and will not execute the function.
Using Sean's cla idea:
[...]
'Callback', @(src,evt) cla )
Myself, I would also be specific about which axis to clear. See http://www.mathworks.com/matlabcentral/answers/22208-show-figure

카테고리

도움말 센터File Exchange에서 Call Python from MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by