MATLAB Answers

0

Index exceeds the number of array elements

Asked by Behrang Elgameh on 17 Oct 2019 at 10:13
Latest activity Commented on by Adam
on 17 Oct 2019 at 13:15
I just get the error for using interpolation
Here is the code
Fs=1000000;
dt=1/Fs;
vt=[0:dt:tmax]';
data1=[];
data1(:,1)=vt;
[A, index] = unique (A);
data1(:,2)=interp1(T,A(index),vt);
A and T are defined from a txt file
Thanks

  0 Comments

Sign in to comment.

1 Answer

Answer by Adam
on 17 Oct 2019 at 11:09
Edited by Adam
on 17 Oct 2019 at 11:10

[A, index] = unique (A);
replaces what was in A with the result of unique (i.e. all the non-unique values removed)
So indexing further into this as
A(index)
will result in this error since index will contain values upto the orginal size of A before the non-unique elements were removed, and is un-necessary as you should just use A (or assign the output of unique to a different variable instead of overwriting A and index into that other variable instead).

  2 Comments

Dear Adam,
Thank you so much for your answer,
I just used "unique" as I was facing the error "The grid vectors must contain unique points" related to interp1
Adam
on 17 Oct 2019 at 13:15
That's fine, but you still need to do either of the options I suggested. Don't do an in-place over-write of your data, then use an index list that was created for the original data on top of that.

Sign in to comment.