# How to select the last 6 values in a column?

1 view (last 30 days)
Edited: darova on 4 Aug 2021
Hi everyone.
I have a doubt. I need to do some horizontal interpolation and, to do it, i must replace NaN's with 0's (zeros).
I already have done the interpolation with the NaN's in the beginning of the data serie, but my problem starts within the last 6 values.
Here's an example:
To replace the NaN's that appears in the first 6 rows, i made this script:
for c=1:4
x=isnan(DD(1:6,c));
DD(x,c)= 0;
end
And everything went well.
Now, I must replace any NaN that appears in the last 6 rows of all columns. I tried to create a code for it, but it's not working
here it goes:
[row,col,page]=size(DD);
for c=1:4
y=isnan(DD(row-5:row,c));
DD(y,c)=0;
end
It's very meaningful to me.

Image Analyst on 22 Jul 2021
Edited: Image Analyst on 22 Jul 2021
Why not simply do:
DD(isnan(DD)) = 0;
Or if you really need to replace only nans in the last 6 rows only, and leave the others, you can do
mask(1:end-5, :) = false; % Ignore all up to the 6th row from the bottom by setting the mask to false there.
To set nans to 0 in the first 6 rows:
mask(7:end, :) = false; % Ignore all rows after the 6th row.
Or to do the first 6 and last 6 all in one operation:
mask(7:end-5, :) = false; % Ignore middle rows.
Perfect, my friend. Thanks a lot for your help, appreciate it!