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

3 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))

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!