Info

# Compare results of three cells

1 view (last 30 days)
Lucas Neves on 5 Mar 2017
Closed: MATLAB Answer Bot on 20 Aug 2021
So here it's the thing. I have three cells, each one with a data of 120 values (1x120 double) and i need to compare the 1st value of the first cell with the 1st one of the second cell and the 1st one of the third cell, then the 2nd one of the first cell with the 1st one of the second cell with the 2nd one of the third cell and so on until i compare the 120 numbers of the three cells. Any ideas? Thanks in advance! Have a good day!
kowshik Thopalli on 5 Mar 2017
Edited: kowshik Thopalli on 5 Mar 2017
Can you expand on your 'comparing;. Are you comparing equality? or whichever is greater or smaller? or if the (value1-value2)<tolerance?

kowshik Thopalli on 5 Mar 2017
Assuming you wish to find the maximum of the corresponding elements in each cell
cell1={rand(1,120)};
cell2={rand(1,120)};
cell3={rand(1,120)};
foo=cellfun(@max, cell,cell2,'UniformOutput',false);
final=cellfun(@max,foo,ceff3,'UniformOutput',false)
hope this helps
##### 2 CommentsShowHide 1 older comment
Jan on 5 Mar 2017
@Lucas: Your variables are not cells, but double vectors. This detail matters.

Jan on 5 Mar 2017
y1 = [ 1; -1; -1; 1];
y2 = [-1; 1; -1; -1];
y3 = [-1; -1; 1; -1];
[ignore, index] = max([y1, y2, y3], [], 2);
Now index contains the wanted result. If the variables are really cells:
[ignore, index] = max([y1{1}, y2{1}, y3{1}], [], 2);