Finding the position of a cell within a Matrix

5 views (last 30 days)
Hello Fellow Developer,
i have been given a 100x13 Matrix with Integers in it. But in one cell there is NaN written in it.
I know that the cell with NaN is in column two, so I tried the following code: But my Variable k never changes to one.
for i=1:100
if Matrix(i, 2) == 'NaN'
k = 1
end
end

Accepted Answer

KSSV
KSSV on 5 Jun 2020
Edited: KSSV on 5 Jun 2020
Read about isnan.
idx = isnan(Matrix(:,2)) ;
Matrix(idx,:)
% To get the rows
rows = find(idx)

More Answers (2)

Ameer Hamza
Ameer Hamza on 5 Jun 2020
Edited: Ameer Hamza on 5 Jun 2020
isnan() is used to detect nan. You can write your code without for-loop
k = any(isnan(Matrix(:,2)))
  4 Comments
Ameer Hamza
Ameer Hamza on 5 Jun 2020
If you want to find the row, then something like this will work
idx = find(isnan(Matrix(:,2)))
Charnkamal Bhogal
Charnkamal Bhogal on 5 Jun 2020
@Ameer Hamza, @madhan ravi, @Jake Bowd
Thanks for your replys

Sign in to comment.


Jake Bowd
Jake Bowd on 5 Jun 2020
Hi,
Could you use the following?
m = ; % whatever the matrix is called.
[row, column] = find(m == NaN)

Categories

Find more on Characters and Strings 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!