Satellite color not changing dynamically

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)

回答(1 个)

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 个评论

Thanks for your response but it is not working.
Can you please send the complete code files?
The main file that has to be executed is "Simulation_original.m"

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Reference Applications 的更多信息

产品

版本

R2023b

提问:

2024-2-28

编辑:

2024-3-1

Community Treasure Hunt

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

Start Hunting!

Translated by