Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Subscript indices must either be real positive integers or logicals Error + Code
Replies: 2   Last Post: Feb 21, 2013 9:42 AM

 Messages: [ Previous | Next ]
 dpb Posts: 9,850 Registered: 6/7/07
Re: Subscript indices must either be real positive integers or logicals
Error + Code

Posted: Feb 20, 2013 5:56 PM

On 2/20/2013 11:24 AM, Jerome wrote:
> was wondering if someone can explain to me what this error means. And,
> if possible, how to resolve it? ??? Subscript indices must either be
> real positive integers or logicals.

Pretty much exactly what it says--Matlab arrays are 1-based so all
indices have to start at (at least) one ("real positive integers" part)
or be logical indices which are an array of T,F that select the subset
within the array on that logic basis rather than by absolute position.

> Error in ==> interp2>linear at 344
> F = ( arg3(ndx).*(onemt) + arg3(ndx+1).*t ).*(1-s) + ...
>
> Error in ==> interp2 at 220
> zi = linear(ExtrapVal,x,y,z,xi,yi);
>
> Error in ==> snake at 71
> ssx = gamma*xs - kappa*interp2(fx,xs,ys);
>
> This is my complete code:
>

...

> eext = (double(wl.*eline) + double(we.*eedge -wt) .* eterm); %eext as a
> weighted sum of eline, eedge and eterm
>

...

Somehow you've passed an illegal set of inputs to interp2() that has
caused it to error. You can tell this by tracing back the errors to the
initiating call. I don't have time at present to try to delve deeply
into your code but the three-argument form of the call to interp2
assumes the V (fx) here is a set of function values that match 1:M and
1:N for the size of the array in the two dimension. I'm suspecting this
probably isn't so is the root cause that confused interp2.

Study

doc interp2

and the examples carefully to see where it went wrong.

--

Date Subject Author
2/20/13 Jerome
2/20/13 dpb
2/21/13 dpb