Find a certain cell in a cell array?

2 Ansichten (letzte 30 Tage)
Pooya Ferdosipour
Pooya Ferdosipour am 23 Aug. 2015
Bearbeitet: Pooya Ferdosipour am 24 Aug. 2015
Hello all,
Suppose we have a a cell array 3x3 there is one matrices in each cell. we already know that if A=[1 0 3 49 5 6 7] then A(4)=49 and also we can easily find the location of 49 in matrices by using find(A==49). But it does not work for cell array! for example if I assume a cell array : I= {[1,2] [2,3] [4,5] ; [6,6] [0.8,8] [2,3] ; [1.1,4] [1,1] [2,2] }
I can not say find I ==[0.8,8] and the answer gives me "5" (the 5th cell). How can I find the locations for a certain value of cell like [0.8,8]?
All the best,

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 23 Aug. 2015
I={ [1,2] [2,3] [4,5] ;
[6,6] [0.8,8] [2,3] ;
[1.1,4] [1,1] [2,2] }
[ii,jj]=find(cellfun(@(x) isequal(x,[0.8,8]),I))

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 23 Aug. 2015
find(cellfun(@(C) isequal(C, [0.8,8]), I)
However, floating point numbers are seldom equal even when they look like they are. 0.8 cannot be represented exactly in binary floating point (just like 1/3 cannot be represented exactly as a finite decimal), and the exact value stored is going to depend on the exact way that the value was calculated.
  1 Kommentar
Pooya Ferdosipour
Pooya Ferdosipour am 24 Aug. 2015
Bearbeitet: Pooya Ferdosipour am 24 Aug. 2015
thanks alot :) I get what I wanted.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrices and Arrays 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