Callback function

조회 수: 2(최근 30일)
Sven Schoeberichts
Sven Schoeberichts 2011년 12월 14일
Hi all,
I am trying to implement a piece of code (a function) into my script. The original code comes from a function. Running my script gives me the following error:
Error: Function definitions are not permitted in this context.
So I put a function declaration in a script, which is causing the error.
I tried putting the function in a seperate function file, but the function needs some variables that are used in the script. So provide the functions with some in- and output variables. But that's the part I am stuck. The functions is called by a callback, and I can't seem to add variables to it. Here is the piece of code which calls the function:
htimes1 = uicontrol( 'Style', 'pushbutton', 'String', '* ', 'Callback', {@bpmaall_Callback});
The function associated with this callback is:
function bpmaall_Callback(source, eventdata)
ynewbp= assenbp(2)-deltaxas1;
axis([0 assenfft(2) 0 ynewbp])
Does someone know a way to avoid this problem?
The piece of code is used to change the y-axis when a button is pressed. Any help is welcome.
- Sven

채택된 답변

Malcolm Lidierth
Malcolm Lidierth 2011년 12월 14일
You need
... 'Callback', {@bpmaall_Callback,x,y,uv});%no ()

추가 답변(2개)

Sean de Wolski
Sean de Wolski 2011년 12월 14일
Pass in the additional input arguments to the function:
function bpmaall_Callback(source, eventdata,x,y,uv)
  댓글 수: 1
Sven Schoeberichts
Sven Schoeberichts 2011년 12월 14일
I tried that, but the problem is that Matlab won't accept any arguments in the callback, like:
... 'Callback', {@bpmaall_Callback(x,y,uv)});
The brackets will be red-underlined (Parse error at '}')

댓글을 달려면 로그인하십시오.

Fangjun Jiang
Fangjun Jiang 2011년 12월 14일
I believe you should use either of this:
htimes1 = uicontrol( ..., 'Callback', @bpmaall_Callback)
htimes1 = uicontrol( ..., 'Callback', 'bpmaall_Callback')

Community Treasure Hunt

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

Start Hunting!

Translated by