What is generating "Subscript indices must either be real positive integers or logicals" in my code?

1 view (last 30 days)
I have attached my code. I know the error happens in my mathematical expression, I just don't understand exactly what the error is telling me. Lines 14-20 show a mathematical function I created to fit my data and that I want to use in a non-linear squares fit to optimize two parameters: p1 and p2. Please help me figure out what this error is saying in my situation. Thanks!

Accepted Answer

Jan
Jan on 4 Apr 2017
Edited: Jan on 4 Apr 2017
Please do not code as screenshot, but as text. Then the readers can use it by copy&paste.
matlabFunction is a 79282x1 vector. In you code you try to evaluate it as a function with non-integer indices. This cannot work. Simplified:
x = 1:3
x(2.7) % ERROR!
  2 Comments
Kelly McGuire
Kelly McGuire on 4 Apr 2017
Edited: Kelly McGuire on 4 Apr 2017
Sorry about that. So, I shouldn't use matlabFunction? I tried, now, doing modelFun = @(p,VarName1) before the function, and it isn't a 79282x1 vector anymore, but now it's saying not enough input arguments.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 5 Apr 2017
We see this several times a day or week. So, since it's a VERY Frequently Asked Question, I just refer you to the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_fix_the_error_.22Subscript_indices_must_either_be_real_positive_integers_or_logicals..22.3F

Community Treasure Hunt

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

Start Hunting!