Error with timer TimerFcn

15 views (last 30 days)
Happy PhD
Happy PhD on 22 Oct 2019
Edited: Sourabh Kondapaka 202年11月4日0
Hi, am using an timer to plot my camera onto UIAxes. I am getting error everytime I stop the timer.
I am getting the error text below, were the i value in "timer-i" changes everytime.
Errorwhile evaluating TimerFcn for timer 'timer-19'
Matrixdimensions must agree.
when I am using the following code
functionCreatePlotTimer(app)
app.timerPlot = timer;
app.timerPlot.StartDelay=1;
app.timerPlot.ExecutionMode='singleShot';
app.timerPlot.TimerFcn = @(~, ~)PlotFunction(app);
end
I am calling the Timer at this location:
ifstrcmp(get(app.ButtonCamera,'Text'),'Start Camera')
start(app.timerPlot)
set(app.ButtonCaptureImages,'Enable','on');
set(app.ButtonCamera,'Text','Stop Camera')% sets button to 'Stop Camera'
else
%%Camera is off. Change button Text and 'start camera'.
stop(app.timerPlot)
CreatePlotTimer(app);
set(app.ButtonCaptureImages,'Enable','off');
set(app.ButtonCamera,'Text','Start Camera')% sets button to 'Start Camera'
end
Anyone knows what is going on?
Many thanks
1 Comment
Guillaume
Guillaume on 1 Nov 2019
As the error message tells you, the problem is with the TimerFcn PlotFunction which clearly does something with two matrices that don't have the same dimension. Unfortunately, you haven't shown us the code of that function.

Sign in to comment.

Answers (2)

Mohammad Sami
Mohammad Sami on 1 Nov 2019
This might be an error from your PlotFunction. I suggest you place a debug point in your PlotFunction and then run the app to see where the error comes from.

Sourabh Kondapaka
Sourabh Kondapaka 202年11月4日0
Edited:Sourabh Kondapaka 202年11月4日0
Hi Happy PhD ,
我的价值的原因使“timer-i”changing is because everytime you run the app, you are creating a new timer.
To avoid this, in the createPlotTimer() function, you can add the following before creating a new timer:
functionCreatePlotTimer(app)
%Below line finds all active timer's in memory and deletes them.
delete(timerfind);
app.timerPlot = timer;
app.timerPlot.StartDelay=1;
app.timerPlot.ExecutionMode='singleShot';
app.timerPlot.TimerFcn = @(~, ~)PlotFunction(app);
end
Refer the documentation here for more information on timers.
About the error :
Matrixdimensions must agree.
Please try the approaches suggested by Guillaume and Mohammad Sami . If the issue is still not resolved, please upload the code of PlotFunction() and also 2 sample matrices which get passed to it as input arguments.

s manbetx 845


Release

R2019b

Community Treasure Hunt

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

Start Hunting!