I am getting a blank graph when I try to plot a while loop. I am not sure why. My code is below. Thank you MATLAB

8 vues (au cours des 30 derniers jours)
%Surface Area (m^3)
SA=4.096e-6;
%Cooling rate goes from 20 to 100W
disp('Outputs')
CR=20;
hold on
while (CR<=100)
HF=CR/SA;
fprintf('Cooling Rate = %g Heat Flux = %g\n',CR,HF)
CR=CR+10;
plot(CR,HF,'c-','LineWidth',2)
end
hold off

Réponse acceptée

Adam Danz
Adam Danz le 16 Sep 2019
On each iteration of your while-loop CR and HF produce 1 coordinate but you're asking to draw a line which requres 2 coordinates.
Plotting within a loop is generally avoidable. You could collect your data within a loop and then plot it after the loop. Better yet, you don't need a loop at all.
%Surface Area (m^3)
SA=4.096e-6;
%Cooling rate goes from 20 to 100W
CR=20 : 10 : 100;
HF=CR/SA;
plot(CR,HF,'c-','LineWidth',2)

Plus de réponses (1)

Walter Roberson
Walter Roberson le 16 Sep 2019
You are plotting one point at a time but you have no marker specified.
MATLAB never deliberately joins points from different plot() calls.
You can specify a marker. Or you can save all of the points and plot them all after the loop. Or you can use animatedLine()

Catégories

En savoir plus sur Discrete Data Plots dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by