Find the different elements in a cell array

Hi to all,
i have a problem because i have a cell array and i need to find the cells that contain both numbers 1 and 2.
Thanks.

 Accepted Answer

Stephen23
Stephen23 on 23 Nov 2021
Edited: Stephen23 on 23 Nov 2021
Where out is your cell array:
fnh = @(v) any(v(:)==1)&&any(v(:)==2);
idx = cellfun(fnh,out)

12 Comments

It gave me error of invalid expression for the fnh line.
@Lidia Frizzi: fixed now, please try it again.
it works thank you!!!!
@Stephen sorry could i please ask you, how can i find all the cell without the number 2?
Perfect!!!
Now i have a matrix with only 1 (when the condition is true) and 0; but if i would like to maintain in the true cells the contents of the initial cell array? how could i do this?
What should the output array contain for the false indices?
you could replace the cells in the existing cell array:
out(~idx) = {0};
or create a new cell array:
new = num2cell(idx);
new(idx) = out(idx)
@Stephen i still need your help pls.
I have one cell array like this one, what i like to do, is to merge the contents of neighboring cells, other than zero.
@Lidia Frizzi: please show the expected result of that "merging".
So for example in the rows 6-7 and colums 8-9 i have three cells not empty the result that i would like to obtain is like this.

Sign in to comment.

More Answers (0)

Categories

Asked:

LL
on 23 Nov 2021

Commented:

LL
on 29 Nov 2021

Community Treasure Hunt

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

Start Hunting!