Index exceeds the number of array elements

조회 수: 1 (최근 30일)
Behrang Elgameh
Behrang Elgameh 2019년 10월 17일
댓글: Adam 2019년 10월 17일
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

답변 (1개)

Adam
Adam 2019년 10월 17일
편집: Adam 2019년 10월 17일
[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
Behrang Elgameh
Behrang Elgameh 2019년 10월 17일
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
Adam 2019년 10월 17일
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.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by