For each product (per node) you need to have all initial matrices in advance, so you should modify your initial loop to something along these lines:
initial_matrix = cell(I, 1);
for i = 1:I
initial_matrix{i} = blah blah... %// Generated for each node
end
Then you can add another nested loop that does something like the following:
result = cell(I, 1);
for k = 1:I
%// Compute product
result{k} = 1;
for n = setdiff(1:I, k)
result{k} = result{k} * (1 - initial_matrix{n});
end
end