Array indices must be positive integers or logical values.
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Bjorn Gustavsson
2020-6-3
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 个评论
更多回答(1 个)
Hank
2020-6-3
编辑:Hank
2020-6-3
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 个评论
Hank
2020-6-3
As I'm continuing to attempt to fix and run the code. More problems are popping up and I'm left wondering what you're trying to simulate here?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!