Index exceeds the number of array elements
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
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 个评论
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 Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!