MATLAB: While taking large range error is occur. How to solve this problem

errorindexrange

My code is as below:
f=1:1000:1000000000;
t1=1/0.4521;
t2=1/0.4908;
t3=1/0.61;
t4=1/1;
for i=1:1000:1000000000
z1(i)=(3.68*10^(-7)*(t1)^(1/2)*(2*3.14*f(i))^0.5);
z2(i)=(3.68*10^(-7)*(t2)^(1/2)*(2*3.14*f(i))^0.5);
z3(i)=(3.68*10^(-7)*(t3)^(1/2)*(2*3.14*f(i))^0.5);
z4(i)=(3.68*10^(-7)*(t4)^(1/2)*(2*3.14*f(i))^0.5);
end
loglog(f,z1,'r',f,z2,'b',f,z3,'g',f,z4,'k');
xlabel('Frequency in Hz');
ylabel('Impedance in ohm');
Error is as below:
Error in ==> he_impe at 3
f=1:1000000000;
??? Attempted to access f(1e+006); index out of bounds because
numel(f)=1000000.
Error in ==> he_impe at 9
z1(i)=(3.68*10^(-7)*(t1)^(1/2)*(2*3.14*f(i))^0.5);

Best Answer

Yes, that makes sense. 1:1000:1E9 has 1E9/1000 elements in it, but you try to access those elements at indexes as high as 1E9.
I would suggest to you:
for i=1:length(f)
Related Question