## error using interp1 !!

### Ano (view profile)

on 31 Oct 2017
Latest activity Commented on by Ano

### Ano (view profile)

on 31 Oct 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!

M

### M (view profile)

on 31 Oct 2017

How is MyMatrix defined ?

on 31 Oct 2017

Can you post a minimal working example, so we can try to reproduce this error?

Ano

### Ano (view profile)

on 31 Oct 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```

on 31 Oct 2017
Edited by M

### M (view profile)

on 31 Oct 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,:))

Ano

### Ano (view profile)

on 31 Oct 2017

yes, I believe that is where the error comes from. any suggestions how to solve this problem ?!

M

### M (view profile)

on 31 Oct 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 (view profile)

on 31 Oct 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?!