How to select the last 6 values in a column?
2 views (last 30 days)
Show older comments
Gabriel Luca Pugliese Borges
on 22 Jul 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
Anyone can help me, please?
It's very meaningful to me.
0 Comments
Accepted Answer
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 = isnan(DD);
mask(1:end-5, :) = false; % Ignore all up to the 6th row from the bottom by setting the mask to false there.
DD(mask) = 0;
To set nans to 0 in the first 6 rows:
mask = isnan(DD);
mask(7:end, :) = false; % Ignore all rows after the 6th row.
DD(mask) = 0;
Or to do the first 6 and last 6 all in one operation:
mask = isnan(DD);
mask(7:end-5, :) = false; % Ignore middle rows.
DD(mask) = 0;
More Answers (0)
See Also
Categories
Find more on Get Started with MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!