MATLAB Answers

Ignore NaN value when iterating

5 views (last 30 days)
Jonathan Cheong
Jonathan Cheong on 21 Mar 2021
Edited: Ive J on 21 Mar 2021
Hello, say for example I would like to iterate each row, and ignore any NaN values in a matrix.
For example a 3x5 matrix (A):
[1 2 3 4 5 ]
[1,NaN,NaN,NaN,NaN]
[1 2 3 NaN,NaN]
I want the length of each row without NaN for iteration.
Hence the result will be:
[5]
[1]
[3]
for i = 1:size(A,1)
% I want the length of each row without NaN values
nonan = length(A(i,isnan(A)==0))
% Then use that for another for loop...
for 1:length(nonan)
...
end
end
How can I code this? Thanks in advance.

Accepted Answer

Ive J
Ive J on 21 Mar 2021
Edited: Ive J on 21 Mar 2021
arrayfun(@(x)numel(A(x, ~isnan(A(x, :)))), 1:size(A,1))
5 1 3

More Answers (0)

Community Treasure Hunt

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

Start Hunting!