MATLAB: Manipulating and assigning values to Cell Arrays

cell arrayscell indexing

I am currently dealing with two cell arrays that have the following anatomy 14×1 cell, Each array is of size 63×63[double]. the cell names are 'a1' & 'b1'.
I want to go in each array and then go to each i &j and subtract the first 13 arrays from the last one{14×1}, which means I want to subtract cell {1,1} – {14,1},{2,1} – {14,1},{3,1} – {14,1},…..and so on. At the end I want the result of the form 13×1 cells assigned to 'a' and 'b''. I have the following code but it only gives me the last value after the calculation.
Any help would be appreciated, Thank you in advance.
for i = 1:63
for j = 1:63
a(i,j) = 0;
b(i,j) = 0;
for k = 1:13
a(i,j) = a1{k}(i,j)-a1{end}(i,j);
b(i,j) = b1{k}(i,j)-b1{end}(i,j);
end
end
end

Best Answer

You are overwriting your matrices in every iteration. Also, you don't need those outer loops, since Matlab can do matrix operations in one go.
a=cell(numel(a1)-1,1);
b=cell(numel(b1)-1,1);
for k = 1:numel(a)
a{k} = a1{k}-a1{end};
b{k} = b1{k}-b1{end};
end