Finding the position of a cell within a Matrix

5 Ansichten (letzte 30 Tage)
Charnkamal Bhogal
Charnkamal Bhogal am 5 Jun. 2020
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
isnan() is used to detect nan. You can write your code without for-loop
k = any(isnan(Matrix(:,2)))
  4 Kommentare
Ameer Hamza
Ameer Hamza am 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 am 5 Jun. 2020
@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
Hi,
Could you use the following?
m = ; % whatever the matrix is called.
[row, column] = find(m == NaN)
  2 Kommentare
Charnkamal Bhogal
Charnkamal Bhogal am 5 Jun. 2020
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.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by