Xlim error in App designer
Mostrar comentarios más antiguos

% Value changing function: STARTKnob_2
function STARTKnob_2ValueChanging(app, event)
arguments
app
event.Value(1,1) {mustBeNumeric}=0
end
app.StartYear = event.Value;
if app.StartYear>app.StopYear-1 %checks the increasing-xrule
app.StopYear=min([app.StartYear+1,app.STOPKnob.Limits(2)]);
app.STOPKnob.Value=app.StopYear; %rotate the stop knob
app.StartYear=app.StopYear-1;
app.STARTKnob_2.Value=app.StartYear;
end
app.plotData();
end
% Value changing function: STOPKnob
function STOPKnobValueChanging(app, event)
arguments
app
event.Value(1,1) {mustBeNumeric}=0
end
app.StopYear = event.Value;
if app.StopYear<app.StartYear+1
app.StartYear=max([app.StopYear-1 app.STARTKnob_2.Limits(1)]);
app.STARTKnob_2.Value=app.StartYear;
app.StopYear=app.StartYear+1;
app.STOPKnob.Value=app.StopYear;
end
app.plotData();
4 comentarios
Mukesh
el 22 de Mzo. de 2025
@Mukesh try with following change in these lines
app.StarYear.Value = event.Value
app.StopYear.Value = event.Value
xlim(app.UIAxes, [app.StartYear.Value app.StopYear.Value])
@Mukesh if you dont want the default values of xlim to be used,
then inside the function plotData you need to put the xlim line with manual first which will override the default values.
function plotData(app)
xlim(app.UIAxes, 'manual') % put this line first
%app.StarYear.Value = event.Value
%app.StopYear.Value = event.Value
xlim(app.UIAxes, [app.StartYear.Value app.StopYear.Value])
Respuesta aceptada
Más respuestas (1)
Walter Roberson
el 22 de Mzo. de 2025
You do not provide initial values for app.StartYear or app.StopYear, so they are initialized to [] (the empty vector)
Then when you test
if app.StartYear>app.StopYear-1
then app.StartYear = event.Value might have given a value to app.StartYear, but app.StopYear is still [] and testing (Value>[]) is false.
3 comentarios
Walter Roberson
el 23 de Mzo. de 2025
It is not an error to calculate with [] .
(It is typically an error to try to store [] into indexed locations. Not always though.)
With it not being an error to calculate with [], the error is not encounted until the call to
xlim(app.UIAxes, [app.StartYear app.StopYear])
with app.StopYear being [] the above call would collapse to
xlim(app.UIAxes, [app.StartYear []])
which would be
xlim(app.UIAxes, app.StartYear)
which would error because the input vector is only length 1.
Mukesh
el 23 de Mzo. de 2025
Categorías
Más información sobre Develop Apps Using App Designer en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!