How do I fix it: Index exceeds matrix dimensions?
Ältere Kommentare anzeigen
Please, I am a begginer on Matlab and when I run my code the following warning appers:
Index exceeds matrix dimensions.
Error in otimizando (line 47) end
-- How can I fix it? I already read that it is because of the size of the matrix, but I can't figure it out. The code is:
i = 1;
a(i) = (1+((4*sin(phi_inicial)^2)/solidez*lift_coef*cos(phi_inicial)));
b(i) = (1-3*a(i))/((4*a(i))-1);
error(i) = 5; % guess
error1(i) = 5; % guess
while (error(i)>=0.00001 || error1(i)>=0.00001)
phi(i) = tan((1-a(i))/((1+b(i))*lambda_r));
F = (2/pi)*acos(exp(-((blade_number/2)*(1-(radius_analyzed/radius_total))/((radius_analyzed/radius_total)*sin(phi(i))))));
alfa(i) = phi(i)*180/pi - beta_inicial;
lift(i) = -9e-9*alfa(i)^6 - 3e-7*alfa(i)^5 + 3e-6*alfa(i)^4 - 0.0001*alfa(i)^3 - 0.0003*alfa(i)^2 + 0.1194*alfa(i)+0.0034; % NACA 0012
drag(i) = 9e-9*alfa(i)^6 + 2e-8*alfa(i)^5 - 3e-6*alfa(i)^4 -6e-6*alfa(i)^3 + 0.0003*alfa(i)^2 + 0.0003*alfa(i) + 0.0045; % NACA 0012
trust_coef(i) = (solidez*((1-a(i))^2)*(lift(i)*cos(phi(i))+drag(i)*sin(phi(i))))/sin(phi(i))^2;
if (trust_coef(i)>= 0.96) % Correção Glauerts
a(i+1) = (1/F)*(0.143+sqrt(0.0203-0.6427*(0.889-drag(i))));
else
a(i+1) = (1+((4*F*sin(phi(i))^2)/(solidez*lift(i)*cos(phi(i)))))^-1;
end
b(i+1) = ((4*F*cos(phi(i))/solidez*lift(i))-1)^-1;
error(i) = abs(abs(a(i+1))-abs(a(i)));
error1(i) = abs(abs(b(i+1))-abs(b(i)));
i = i + 1;
end
5 Kommentare
Jan
am 24 Apr. 2015
Please provide the complete error message. Most of all do not let the readers guess, which line is failing.
João Pedro Cadore
am 24 Apr. 2015
James Tursa
am 24 Apr. 2015
Which line is line 46? And don't use "error" for a variable name, since that is an inbuilt MATLAB function name.
João Pedro Cadore
am 24 Apr. 2015
João Pedro Cadore
am 24 Apr. 2015
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!