Error in plotting (blank graph): Vector Size

1 Ansicht (letzte 30 Tage)
Justin Doan
Justin Doan am 23 Okt. 2020
Bearbeitet: madhan ravi am 23 Okt. 2020
v--- = linspace(0,35,36);
v = v * 0.44704;
N = length(v);
for i= 0:N
if (i < 30)
eta(i+1) = -0.001778 * ((v(i+1)).^2) + 0.05333 * (v(i+1));
else
eta(i+1) = 0;
end
end
hold on
plot (v,eta,'r-')
xlabel('Speed (m/s)')
ylabel('Net Efficiency (Percent)')
hold off
----------------------
I have pasted my code above. When I go to plot the data (v on x axis, eta on y axis), it says there is an error and that the vectors must be the same length. Any suggestions for a fix?

Antworten (2)

Ameer Hamza
Ameer Hamza am 23 Okt. 2020
Bearbeitet: Ameer Hamza am 23 Okt. 2020
Check the following code. You don't need to use eta(i+1).
v = linspace(0,35,36);
v = v * 0.44704;
N = length(v);
eta = zeros(1, N); % pre-allocation for efficiency
for i= 1:N
if (i < 30)
eta(i) = -0.001778 * ((v(i+1)).^2) + 0.05333 * (v(i+1));
else
eta(i) = 0;
end
end
hold on
plot (v,eta,'r-')
xlabel('Speed (m/s)')
ylabel('Net Efficiency (Percent)')
hold off

madhan ravi
madhan ravi am 23 Okt. 2020
Bearbeitet: madhan ravi am 23 Okt. 2020
No loops needed:
eta = -0.001778 * v.^2 + 0.05333 * v;
eta(30 : end) = 0;

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by