getting error Subscript indices must either be real positive integers or logicals.

1 view (last 30 days)
Dear all
i write a code when i run this i got error "Subscript indices must either be real positive integers or logicals." code is as follows
function z=aa(p,a,q)
t=0;
z=((p(t)-1200+150)*(-d)*(0.45+0.75*log10(abs(a(t)))+0.1*2)*(100-2)*exp(-.004*p(t))*exp(.4*q(t))...
+(0.45+0.75*log10(abs(a(t)))+0.1*2)*(100-2)*exp(-.004*p(t))*exp(.4*q(t)))^(2);
any one please tell me the solution
Thank you

Accepted Answer

Nathaniel
Nathaniel on 19 Jun 2012
I'm assuming that you are intending p to operate as a function, but maybe you are not passing in a function handle?
Matlab appears to be interpreting it as a matrix, and so p(t) evaluates to p(0), i.e., the 0th element of p, rather than "p of 0" which is what I suspect you want. Since Matlab indices are 1-based, p(0) throws the "...real positive integers or logicals" error.

More Answers (0)

Tags

Products

Community Treasure Hunt

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

Start Hunting!