Finding the position of a cell within a Matrix

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

 Akzeptierte Antwort

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

Weitere Antworten (2)

Ameer Hamza
Ameer Hamza am 5 Jun. 2020
Bearbeitet: Ameer Hamza am 5 Jun. 2020

0 Stimmen

isnan() is used to detect nan. You can write your code without for-loop
k = any(isnan(Matrix(:,2)))

4 Kommentare

captainjoker
captainjoker am 5 Jun. 2020
Bearbeitet: captainjoker am 5 Jun. 2020
The Problem is, that I am trying to find the row in which NaN is written.
I already know that the column is the second
If you want to find the row, then something like this will work
idx = find(isnan(Matrix(:,2)))
@Ameer Hamza, @madhan ravi, @Jake Bowd
Thanks for your replys

Melden Sie sich an, um zu kommentieren.

Jake Bowd
Jake Bowd am 5 Jun. 2020

0 Stimmen

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

2 Kommentare

I could not use that, because I have loaded the Matrix from a .mat file
Jake Bowd
Jake Bowd am 5 Jun. 2020
Arrhh I see :).

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by