I have following two cells, where C is basically created by following code:
————————————————————–
Nodes = cell2table(AllCell);Nodes_Unique = unique(Nodes,'rows'); AllNodes = table2cell(Nodes_Unique);n = size(AllNodes,1); N = 0:(n-1); a = rand(1,10000); b = N'; B = num2cell(b); C = [AllNodes,B];
————————————————————–
C = 5×4 cell array {'+0.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {[0]} {'+0.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {[1]} {'+2.5000000E+00'} {'+2.5000000E+00'} {'+5.0000000E+00'} {[2]} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {[3]} {'+5.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {[4]}
————————————————————–
AllCell = 12×3 cell array {'+0.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+2.5000000E+00'} {'+2.5000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+5.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+2.5000000E+00'} {'+2.5000000E+00'} {'+5.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+5.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'}
————————————————————–
I would like to compare each row of the 2nd cell (AllCell) with the 1st cell (C) and write the 4th column value of the 1st cell to the 2nd cells 4th column (AllCell) if the rows (or first 3 columns) match. The result should be like this:
{'+0.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {[1]} {'+0.0000000E+00'} {'+0.0000000E+00'} {'+0.0000000E+00'} {[0]} {'+2.5000000E+00'} {'+2.5000000E+00'} {'+5.0000000E+00'} {[2]} {'+0.0000000E+00'} {'+5.0000000E+00'} {'+0.0000000E+00'} {[1]}etc.
How can I achieve this comparison of those two cells? I could use tables too if cells don't work.
Best Answer