How to find index of a value in cell array

114 visualizaciones (últimos 30 días)
Vishal Sharma
Vishal Sharma el 25 de En. de 2017
Comentada: Walter Roberson el 8 de Nov. de 2024 a las 4:40
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

Respuesta aceptada

the cyclist
the cyclist el 25 de En. de 2017
Editada: the cyclist el 25 de En. de 2017
isSix = cellfun(@(x)isequal(x,6),A);
[row,col] = find(isSix);
  4 comentarios
Kristoffer Walker
Kristoffer Walker el 13 de Dic. de 2019
Not at all intuitive, but it works great, even for logicals.
JianLin Sun
JianLin Sun el 8 de Nov. de 2024 a las 4:01
It's useful,thanks.

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 25 de En. de 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 comentario
Walter Roberson
Walter Roberson el 8 de Nov. de 2024 a las 4:40
Looking again several years later, it looks like the code should use
[maxrow, maxcol] = find( cell2mat(B) == 6);

Iniciar sesión para comentar.

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by