for H=200:100:36000 %For loop created for the Height of the satellite
Gc = 398000.5 %Gravitational Constant times Earth's Mass
Re = 6371 %Radius of Earth
V = sqrt(Gc/(Re+H)) %Formula for calculating the Satellite Speed
hold on %Allows to plot multiple times on the same graph
plot(H, V,'-b') %Plot the Height with respect the Speed
end
ylabel('Orbital Speed (Km/S)'), xlabel('Height (Km)') %Labels on each axis
grid on %Grid added for easier understanding of data
My code works but i dont get the plot line when i run this..

 Réponse acceptée

Ruger28
Ruger28 le 24 Sep 2019
Modifié(e) : Ruger28 le 24 Sep 2019

1 vote

Don't use plot if you are trying to plot each H vs V value. Use Scatter
for H=200:100:36000
Height(H) = H;
Gc = 398000.5; %Gravitational Constant times Earth's Mass
Re = 6371; %Radius of Earth
V = sqrt(Gc/(Re+H)); %Formula for calculating the Satellite Speed
scatter(H, V);
hold on %Allows to plot multiple times on the same graph
%Plot the Height with respect the Speed
end
ylabel('Orbital Speed (Km/S)'), xlabel('Height (Km)') %Labels on each axis
grid on
A more effifient way, and the better answer is this:
clear all;
figure;
Gc = 398000.5;
Re = 6371;
cntr = 1;
for H=200:100:36000
V(cntr) = sqrt(Gc/(Re+H))
Height(cntr) = H;
cntr = cntr + 1;
end
plot(Height,V)
ylabel('Orbital Speed (Km/S)');
xlabel('Height (Km)');
grid on;
The problem in your script is that you are plotting a single point, rather than a set of x&y values. Scatter plots a single point better.
The second bit of code is most likely what you are looking for.

2 commentaires

vas mit
vas mit le 24 Sep 2019
Thank you so much it works! Just started with Matlabs for my Thesis project and it can get tricky a lot.
darova
darova le 24 Sep 2019
Preallocate arrays!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by