How to find the number of non-NaN elements in a column that are NaN in the last column, in MatLab?

5 views (last 30 days)
Let's say I have a matrix
50 15 20 35 20
NaN NaN NaN 25 20
15 20 25 NaN NaN
NaN NaN 35 20 15
I want to find out the number of elements that are non-NaN in a column but are NaN in the last column.
For example, in Column 4, there is 1 element (4,2) that is non-NaN in Column 4 but is NaN in Column 3.
How do I find this number for each column?
Thank you so much!

Accepted Answer

James Tursa
James Tursa on 30 Jan 2023
Edited: James Tursa on 30 Jan 2023
Code is written from a slightly reordered wording:
"for each column, number of elements that are NaN in the last column and non-NaN in a column"
sum(isnan(YourMatrix(:,end)) & ~isnan(YourMatrix(:,1:end-1)))
E.g.,
YourMatrix = [
50 15 20 35 20
NaN NaN NaN 25 20
15 20 25 NaN NaN
NaN NaN 35 20 15]
YourMatrix = 4×5
50 15 20 35 20 NaN NaN NaN 25 20 15 20 25 NaN NaN NaN NaN 35 20 15
sum(isnan(YourMatrix(:,end)) & ~isnan(YourMatrix(:,1:end-1)))
ans = 1×4
1 1 1 0
Result is the number of elements matching criteria for each column except the last column.
  4 Comments
Walter Roberson
Walter Roberson on 30 Jan 2023
YourMatrix = [
50 15 20 35 20
NaN NaN NaN 25 20
15 20 25 NaN NaN
NaN NaN 35 20 15];
sum(isnan(YourMatrix(:,1:end-1)) & ~isnan(YourMatrix(:,2:end)))
ans = 1×4
0 1 1 0
Julia
Julia on 30 Jan 2023
Yes, this is exactly what I want! Your answer is such a great help for me. Thank you so much for your patience!

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 30 Jan 2023
isnan(YourMatrix(:, 3)) & ~isnan(YourMatrix(:, 4))

Categories

Find more on Matrix Computations in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!