Asked by Rita
on 3 Nov 2016

I have worked with this great function and I can't understand why this happens: If we have a vector with 100 data and some nans and run the function to get the values for nans and also dividing the data to 5 parts(5*20 each small vector has 20 data) and using the function(the nans are the same for each 20 records ) so why the results for both ways are not the same??? Thanks for any idea.

Answer by John D'Errico
on 3 Nov 2016

Edited by John D'Errico
on 3 Nov 2016

Accepted Answer

Why would they be the same? You are posing two different problems. It sounds like you have reshaped the vector into a 5x20 array. On two dimensional problems, the function works in both dimensions, looking at the neighbors of a point in all directions to interpolate.

Or, did you break the vector into 5 disjoint vectors, then calling inpaint_nans 5 separate times? Even in this case, the function uses the neighbors of a point in each direction. So if a nan is at or near the break point between those segments then of course there will be a difference.

Perhaps you can give an example where you see a problem, attach the data to a comment, and show how you called it.

Rita
on 4 Nov 2016

John D'Errico
on 6 Nov 2016

Unless you can give an example where you see something different, it is difficult to know what you saw.

V = 1:20;

>> V([5 14]) = NaN;

>> inpaint_nans(V)

ans =

Columns 1 through 12

1 2 3 4 5 6 7 8 9 10 11 12

Columns 13 through 20

13 14 15 16 17 18 19 20

>> V1 = V(1:10);

>> V2 = V(11:20);

>> inpaint_nans(V1)

ans =

1 2 3 4 5 6 7 8 9 10

>> inpaint_nans(V2)

ans =

11 12 13 14 15 16 17 18 19 20

As you can see, both cases produce identical results for the NaN elements.

Rita
on 7 Nov 2016

Thanks John

Sign in to comment.

Answer by Image Analyst
on 6 Nov 2016

FYI, starting with R2015a there is a built-in function regionfill().

Image Analyst
on 7 Nov 2016

John D'Errico
on 7 Nov 2016

Rita
on 8 Nov 2016

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.