Satellite color not changing dynamically

4 views (last 30 days)
Krish
Krish on 28 Feb 2024
Edited: Krish on 1 Mar 2024
I want that the satellite color changes to that of its current network manager.
When i move frame by frame by using advance function the color changes occur in the simulation but when I use the loop:
while sc.SimulationTime ~= sc.StopTime
sc.advance();
for leo_in=1:size(leo_satellites)
for nm_in=1:size(network_managers)
if detect_change_nm(leo_in,nm_in) ~= size(access_list{leo_in,nm_in}.accessIntervals,1)
detect_change_nm(leo_in,nm_in) = detect_change_nm(leo_in,nm_in) + 1;
% change color of satellite same as its network manager
leo_satellites(leo_in).matlab_sat.MarkerColor = network_managers(nm_in).gs.MarkerColor;
end
end
end
end
The simulation shows the initial color only.
Color change occuring when moving frame by frame
:
Originally they were red and not changed to green even though they must change color according to the code (using above loop)

Answers (1)

Gayatri
Gayatri on 29 Feb 2024
Hi Krish,
In MATLAB, when you run a loop that updates graphical objects, you often need to manually force the graphics to render the updates. This is typically done using 'drawnow', which is a MATLAB function that forces the figure window to update and display any pending graphics events.
Here's an example of how 'drawnow' can be used:
x = 1:100;
y = sin(x);
figure
plot(x, y)
for i = 1:100
y = sin(x + i/10);
plot(x, y)
drawnow % Usage of drawnow
end
Please refer the below documentation for 'drawnow' function: https://in.mathworks.com/help/matlab/ref/drawnow.html
I hope it helps!
  3 Comments
Gayatri
Gayatri on 1 Mar 2024
Can you please send the complete code files?
Krish
Krish on 1 Mar 2024
Edited: Krish on 1 Mar 2024
The main file that has to be executed is "Simulation_original.m"

Sign in to comment.

Categories

Find more on Reference Applications in Help Center and File Exchange

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!