MATLAB: Array indices must be positive integers or logical values.

arrayslogical?

im sorry i dont know how this can happen, can someone help me
k=[0:20:1000]
for a=1:length(k);
derivative_x(a)=2*kons_G*rho_model*t*(-(1/(z2((x(a)-x0)^2/z2^2+1)))+(1/(z1((x(a)-x0))^2/z1^2+1))); %sudah dalam mGal

derivative_z(a)=((-2*kons_G*t*rho_model*((x(a)-x0)/(z1^2+(x(a)-x0)^2)))); %sudah dalam mGal
end

Best Answer

derivative_x(a)=2*kons_G*rho_model*t*(-(1/(z2((x(a)-x0)^2/z2^2+1)))+(1/(z1((x(a)-x0))^2/z1^2+1))); %sudah dalam mGal
MATLAB has absolutely no implied multiplication. Not even in the symbolic mathematics languages.
Therefore your z2( and z1( expressions are interpreted as requests to index z2 and z1 at calculated locations that do not happen to come out as positive integers.