How to find index of a value in cell array

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

Risposta accettata

the cyclist
the cyclist il 25 Gen 2017
Modificato: the cyclist il 25 Gen 2017
isSix = cellfun(@(x)isequal(x,6),A);
[row,col] = find(isSix);
  4 Commenti
Kristoffer Walker
Kristoffer Walker il 13 Dic 2019
Not at all intuitive, but it works great, even for logicals.

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 25 Gen 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 Commento
Walter Roberson
Walter Roberson il 8 Nov 2024
Looking again several years later, it looks like the code should use
[maxrow, maxcol] = find( cell2mat(B) == 6);

Accedi per commentare.

Categorie

Scopri di più su Resizing and Reshaping Matrices 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