Stackedplot error when changing position and plotting again
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Christof
el 7 de Jun. de 2024
Hello together,
I get an error with stackedplot, when changing position (which works always the first time) and plotting then again, adding new variables. Without the position change, there is no error and I can plot on.
That's the code I use. Without the "Position" line it works fine all the time. With the position change I get an error (below code).
app.Logs(app.Log).Stack{1} = stackedplot(app.Logs(app.Log).Table, app.Logs(app.Log).ToPlot,'Parent',app.StackedTab);
for e=1:+1:height(app.Logs(app.Log).Stack{1}.DisplayLabels)
emptyLabels(e,1) = ""; % Create empty string for label
end
if app.Logs(app.Log).Plots > 0
app.Logs(app.Log).Stack{1}.DisplayLabels = emptyLabels; % "Delete labels"
app.Logs(app.Log).Stack{1}.Position = [0.05,0.05,0.90,0.90]; % Get rid of the broad margin
end
Thats the error:
Error using stackedplot (line 100)
Brace indexing is not supported for variables of this type.
Error in LogReader/DataButtonPress (line 141)
app.Logs(app.Log).Stack{1} =
stackedplot(app.Logs(app.Log).Table,
app.Logs(app.Log).ToPlot,'Parent',app.StackedTab);
Error in LogReader>@(varargin)app.DataButtonPress(varargin{:}) (line 336)
app.Logs(app.Log).Variables{2, i}.ValueChangedFcn =
@app.DataButtonPress; %Callback function
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 429)
Error while evaluating StateButton PrivateValueChangedFcn.
What am I not understanding? ^^
Thanks in advance!
Christof
4 comentarios
dpb
el 7 de Jun. de 2024
If it works, all's well, but it surely looks like way overkill on nested referencing...
for e=1:+1:height(app.Logs(app.Log).Stack{1}.DisplayLabels)
emptyLabels(e,1) = "";
end
can be written as
emptyLabels=strings(size(app.Logs(app.Log).Stack{1}.DisplayLabels));
Respuesta aceptada
dpb
el 7 de Jun. de 2024
Editada: dpb
el 7 de Jun. de 2024
tP=readtable("patients.xls","TextType","string");
hSP=stackedplot(tP,["Height","Weight","Systolic","Diastolic"]);
figure
vars=["Height","Weight","Systolic","Diastolic"];
hSP=stackedplot(tP,vars,'DisplayLabels',strings(size(vars)),'Position',[0.05,0.10,0.90,0.90]);
Get rid of the nested indexing of variables with cells...it's trying to dereference a non-cell object with the curlies that is the syntax problem...don't do that!!!
3 comentarios
dpb
el 7 de Jun. de 2024
We can't run your app, but the approach shown will work if you save the figure and axis handles and reference them correctly.
The problem in your code is owing to the {} trying to dereference objects but it's not possible in isolation to see just what you're trying to do.
Más respuestas (0)
Ver también
Categorías
Más información sobre Graphics Object Programming en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!