# Array indices must be positive integers or logical values.

2 views (last 30 days)

Show older comments

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!

clear

Cd0=0.01

K=0.02

W = 80000

S = 50

q=0.6

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])

end

##### 1 Comment

### Accepted Answer

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;

HTH

##### 0 Comments

### 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)?

##### 2 Comments

Hank
on 3 Jun 2020

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!