Asked by antonet
on 4 Jul 2012

I have 2 cell matrices R and W and I want to check if they contain the same elements. Specifically, I want to compare R which is obtained from

[N,T,R] = xlsread( filename); %

with another matrix W.Both matrices are cell matrices and can also contain NaN entries.

My goal: If my calculations are correct then

kk=W(7 ,3:end); should contain the same elements with

zz1=R(7,3:end);

or zz2=R(8,3:end);

So to test this I do something like

if zz==xx1 | zz== xx2

'OK' else 'Not OK' EndThe problem is that

zz==xx1

??? Undefined function or method 'eq' for input arguments of type 'cell'.

So I use cell2mat(zz)==cell2mat(xx1) and it works.

But if zz and xx1 contain NaN then for some reason I cannot use the cell2mat() approach

I am looking for a general approach that will enable me to do that comparison whether I have NaN and numbers or only numbers’

thanks

*No products are associated with this question.*

Answer by Andrei Bobrov
on 5 Jul 2012

Edited by Andrei Bobrov
on 5 Jul 2012

Accepted answer

variant of comparison cell arrays (edit)

A = {... [84] [ 93] [ 109] [99] [NaN] [ 62] [29] [123] 'dgdgdg'}; B = {... [84] [ 93] [ 109] [99] [NaN] [ 62] [29] [123] 'dgdgdg'};

A1=A; B1=B; A1(cellfun(@(x)all(isnan(x)),A)) = {0}; B1(cellfun(@(x)all(isnan(x)),B)) = {0}; out = isequal(A1,B1);

Show 1 older comment

Andrei Bobrov
on 5 Jul 2012

Hi Antonet! Thank you for "Accepted answer", but I mean that Jan's answer better.

Answer by Jan Simon
on 5 Jul 2012

C1 = {'String1', 23, -17, NaN, 1:29); C2 = {'String2', 24, -17.3, 21, 1:30); C3 = {'String1', 23, -17, NaN, 1:29);

% |C1==C2| fails! isequalwithequalnans(C1, C2) isequalwithequalnans(C1, C3)

I cannot test this currently. When NaNs should be assumed to be different, `isequal` would do it.

Show 1 older comment

Teja Muppirala
on 5 Jul 2012

Answer by Kevin Claytor
on 4 Jul 2012

My guess from searching the help docs for 'cell' gives;

m = cell2mat(c) converts a multidimensional cell array c with contents of the same data type into a single matrix, m.

Walter Roberson
on 5 Jul 2012

Opportunities for recent engineering grads.

## 1 Comment

## Jan Simon (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/42758#comment_87885

@Readers: It seems like anonet wants to compare cells, which contain numerical and string values.