error using interp1 !!

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 comentarios

M
M el 31 de Oct. de 2017
How is MyMatrix defined ?
Rik
Rik el 31 de Oct. de 2017
Can you post a minimal working example, so we can try to reproduce this error?
Ano
Ano el 31 de Oct. de 2017
Editada: Ano el 31 de Oct. de 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

Iniciar sesión para comentar.

Respuestas (1)

M
M el 31 de Oct. de 2017
Editada: M el 31 de Oct. de 2017

0 votos

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 comentarios

Ano
Ano el 31 de Oct. de 2017
yes, I believe that is where the error comes from. any suggestions how to solve this problem ?!
M
M el 31 de Oct. de 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 el 31 de Oct. de 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?!

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

Ano
el 31 de Oct. de 2017

Comentada:

Ano
el 31 de Oct. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by