How do you stop a MATLAB GUI from clearing axes between plot commands?

4 Ansichten (letzte 30 Tage)
I have a GUI that I'm using to place initial locations for a 6DOF sim. I want the points to use different markers (a red circle and a gray triangle), but every time I use two plot3 commands, the GUI plots the first then clears and plots the second. I'm using the hold on ... hold off command. Is there a way to fix this or use one command?
Here's what happens after the 'Place' button is pressed:
Code for reference:
hold on
plot3(app.UIAxes,missile_init_x,missile_init_y,...
missile_init_alt,'ko','MarkerSize',15,'MarkerFaceColor',...
'r') % <--------- Some form of clear/reset happens here
plot3(app.UIAxes,target_init_x,target_init_y,0,'kv',...
'MarkerSize',20,'MarkerFaceColor',0.5*[1 1 1])
hold off

Akzeptierte Antwort

Image Analyst
Image Analyst am 25 Mai 2022
Is it possible your missile and target coordinates are exactly overlapping? Or are in line with each other from that point of view so that you see only the closest one? Do you see both if you rotate the axes? This seems to work fine:
missile_init_x = -1000;
missile_init_y = -1000;
missile_init_alt = 2000;
target_init_x = 1000;
target_init_y = 1000;
hold on
plot3(missile_init_x,missile_init_y,...
missile_init_alt,'ko','MarkerSize',15,'MarkerFaceColor',...
'r') % <--------- Some form of clear/reset happens here
plot3(target_init_x,target_init_y,0,'kv',...
'MarkerSize',20,'MarkerFaceColor',0.5*[1 1 1])
grid on;
view(500, 500)
hold off
  1 Kommentar
James Floyd
James Floyd am 25 Mai 2022
That works in regular MATLAB, but in the GUI, it doesn't which is the most confusing part of all of this.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Gavin
Gavin am 20 Okt. 2022
Bearbeitet: Gavin am 20 Okt. 2022
Encountered the same issue myself, ended up fixing it by setting
app.UIAxes.NextPlot = 'add'
in my startupFcn
and then juggling the intended clearing behavior with
cla(app.UIAxes)
To figure this out, I ran my app from the command window like
app = AppCommand(appParam1, appParam2,...)
and then going into the variable explorer and poking around the properties of app.UIAxes, which seem to be fairly intuitively named. Hope this solves your issue!

Kategorien

Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by