Array indices must be positive integers or logical values.

2 views (last 30 days)
Hello everyone, I am new to Matlab and just learning at the moment.
I am trying to calculate a polynomial and then graph it, but I gent an error "Array indices must be positive integers or logical values." on line 23
would appreciate any help
Thank you!
W = 80000
S = 50
dH = 0.1
Hm = 12
H = 0:dH:Hm;
Pol1 = zeros(4,2);
Pol4 = zeros(4,2);
Pol = K*W^2
q = zeros(1,length(H));
q(1) = 1;
for n=2:length(H)
q(n) = (20-dH(n-1))/(20+dH(n-1));
Pol4(n) = Cd0(0.5*1.225*q(n)*50)^2;
Pol1(n) = ((-1.225*q(n))^2*0.5*50);
r =roots([Pol4(n) 0 0 Pol1(n) Pol])
  1 Comment
madhan ravi
madhan ravi on 3 Jun 2020
There are lots of bugs , answers below points only one of the mistakes.

Sign in to comment.

Accepted Answer

Bjorn Gustavsson
Bjorn Gustavsson on 3 Jun 2020
Most likely you want to multiply Cd0 with the expression in the parenthesis, you try to index the variable with the value of (0.5*1.225*q(n)*50); Try:
Pol4(n) = Cd0*(0.5*1.225*q(n)*50)^2;

More Answers (1)

Hank on 3 Jun 2020
Edited: Hank on 3 Jun 2020
In the line:
Pol4(n) = Cd0(0.5*1.225*q(n)*50)^2;
what you wrote says to index Cd0 at 0.5*1.225*q(n)*50, which is probably not an integer. I think you want to multiply by Cd0 like this
Pol4(n) = Cd0 * (0.5*1.225*q(n)*50)^2;
You're also going to have trouble indexing the scalar value like you are: dH(n-1). Maybe you mean H(n-1)?
BioZ on 4 Jun 2020
During a cruise speed, aircrafts can have so called min a max available cruise speed. It's easy to solve for jet engine as it is just a quadratic but for prop engines it is a x^4 polynomial, therefore best to solve it via computational method. It should produce 2 real numbers and 2 imaginary values and when we reach abosolute ceiling 4 imaginary values should appear. My code was intended to solve that until 4 imaginary numbers or max alt specified was reached. then plot it against altitude I fixed the code already, but thank you very much for help! :)

Sign in to comment.




Community Treasure Hunt

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

Start Hunting!