# How to solve "index exceeds the number of array elements"

2 views (last 30 days)
Ryan Majid on 24 Dec 2020
Commented: Ryan Majid on 24 Dec 2020
Hi,
Why I can't plot the following code? The error is: Index exceeds the number of array elements (1).
What I'm trying to achive is that a user enters a scalar value f (such as 1500) anf Ht and Hr. So, I want to find value of ahr and L accondingliy and then plot L vs f. SO on f axis I shoud have 100,150,200,250,300,....,1500 and corrsponding values on L axis.
for i=100:50:f
cm=0;
ahr(i)=(1.1*log10(f(i))-0.7)*Hr-1.56*log10(f(i))-0.8;
L(i)=46.3+33.9*log10(f(i))-13.82*log10(Ht)-ahr+(44.9-6.55*log10(Hr))*log10(d)+cm;
plot(f,L)
end

Mischa Kim on 24 Dec 2020
Edited: Mischa Kim on 24 Dec 2020
Hi Ryan, try something like this:
fl = 100;
fu = 1500; % replace as necessary
N = 100;
f = linspace(fl,fu,N);
cm = 0;
for ii = 1:numel(f) % careful with "i", this is also the imaginary unit
ahr(ii) = (1.1*log10(f(ii))-0.7)*Hr-1.56*log10(f(ii))-0.8;
L(ii) = 46.3+33.9*log10(f(ii))-13.82*log10(Ht)-ahr(ii)+(44.9-6.55*log10(Hr))*log10(d)+cm;
end
plot(f,L)
Ryan Majid on 24 Dec 2020
Understood. So appreciated.