Finding the position of a cell within a Matrix

5 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

KSSV
KSSV il 5 Giu 2020
Modificato: KSSV il 5 Giu 2020
Read about isnan.
idx = isnan(Matrix(:,2)) ;
Matrix(idx,:)
% To get the rows
rows = find(idx)

Più risposte (2)

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

Accedi per commentare.


Jake Bowd
Jake Bowd il 5 Giu 2020
Hi,
Could you use the following?
m = ; % whatever the matrix is called.
[row, column] = find(m == NaN)
  2 Commenti
Charnkamal Bhogal
Charnkamal Bhogal il 5 Giu 2020
I could not use that, because I have loaded the Matrix from a .mat file

Accedi per commentare.

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by