How to find index of a value in cell array

32 vues (au cours des 30 derniers jours)
Vishal Sharma
Vishal Sharma le 25 Jan 2017
I have this Cell Array ‘A’ of size 3 by 7
A = { 3 4 [] [] [] [] []
2 6 -2 2 -2.1 2 2
-5 -5 25 1 [] [] []}
I want to find index of ‘6’ element in 2nd row and 2nd column The answer shall be row = 2 and column = 2

Réponse acceptée

the cyclist
the cyclist le 25 Jan 2017
Modifié(e) : the cyclist le 25 Jan 2017
isSix = cellfun(@(x)isequal(x,6),A);
[row,col] = find(isSix);
  4 commentaires
Kristoffer Walker
Kristoffer Walker le 13 Déc 2019
Not at all intuitive, but it works great, even for logicals.
JianLin Sun
JianLin Sun le 8 Nov 2024
It's useful,thanks.

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 25 Jan 2017
Re-using the framework of my answer to your earlier question:
B = A;
B(cellfun(@isempty, B)) = {NaN};
[maxrow, maxcol] = find( reshape(cell2mat(B), [], 1) == 6);
  1 commentaire
Walter Roberson
Walter Roberson le 8 Nov 2024
Looking again several years later, it looks like the code should use
[maxrow, maxcol] = find( cell2mat(B) == 6);

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Types dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by