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

2 次查看(过去 30 天)
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!

采纳的回答

James Tursa
James Tursa 2023-1-30
编辑:James Tursa 2023-1-30
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 个评论
Walter Roberson
Walter Roberson 2023-1-30
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

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2023-1-30
isnan(YourMatrix(:, 3)) & ~isnan(YourMatrix(:, 4))

类别

Help CenterFile Exchange 中查找有关 Matrix Computations 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by