error using interp1 !!

6 Ansichten (letzte 30 Tage)
Ano
Ano am 31 Okt. 2017
Kommentiert: Ano am 31 Okt. 2017
Hello! I wanted to interpolate the NaN values within a matrix , and it works perfectly but I wanted also to interpolate the Inf entries so I have used the following line:
MyMatrix(isinf(MyMatrix))=NaN;
but then I get the following error :
Index exceeds matrix dimensions.
Error in interp1 (line 128)
extptids = Xq < X(1) | Xq > X(end);
could you give me any hints to what is causing this error and how can I interpolate the Inf entries without any errors . thank you ! Best regards!
  3 Kommentare
Rik
Rik am 31 Okt. 2017
Can you post a minimal working example, so we can try to reproduce this error?
Ano
Ano am 31 Okt. 2017
Bearbeitet: Ano am 31 Okt. 2017
thank you for your replies! Here is the code I am using and the matrix subject of this error.
[rowN, colN]=size(MyMatrix);
colInd = 1: colN;%COLUMNS INDICES
IndnNAN = ~isnan(MyMatrix);
for r=1:rowN
MyMatrix(r,:)=interp1(colInd(IndnNAN(r,:)),MyMatrix(r,IndnNAN(r,:)),colInd,'linear');
end

Melden Sie sich an, um zu kommentieren.

Antworten (1)

M
M am 31 Okt. 2017
Bearbeitet: M am 31 Okt. 2017
Maybe the problem comes from the fact that
colInd(IndnNAN(r,:))
ans =
1×0 empty double row vector
and so is MyMatrix(r,IndnNAN(r,:))
  3 Kommentare
M
M am 31 Okt. 2017
Well, given your definition, either you have :
IndnNAN(r,:)
ans =
1×10 logical array
1 1 1 1 1 1 1 1 1 1
or
IndnNAN(r,:)
ans =
1×10 logical array
0 0 0 0 0 0 0 0 0 0
so colInd(IndnNAN(r,:)) will either be equal to 1: colN or it will be empty.
The question is, what did you want to do ?
Ano
Ano am 31 Okt. 2017
first, I wanted to interpolate the NaN values and the code worked perfectly, then as I have mentioned I wanted to interpolate the consecutive Inf entries as they are taking an important part of the matrix but it is not working , so if I would reformulate my question I would say how can I interpolate consecutive entries of Inf values?!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by