Smart for loop for summing cell array matrices
Show older comments
Hi all,
I have an empty cell test_set_class and a cell matrix class_test made of 100x30 matrices (i.e. each element of classs_test is a 1229x119 matrix). What I would like to do is to perform the following
N_RIPETIZIONI=100;
for RIPETIZIONE = 1:N_RIPETIZIONI
test_set_class{RIPETIZIONE}=class_test{RIPETIZIONE,1}+class_test{RIPETIZIONE,2}+class_test{RIPETIZIONE,3}+class_test{RIPETIZIONE,4}+...
class_test{RIPETIZIONE,5}+class_test{RIPETIZIONE,6}+class_test{RIPETIZIONE,7}+class_test{RIPETIZIONE,8}+class_test{RIPETIZIONE,9}+class_test{RIPETIZIONE,10}+...
class_test{RIPETIZIONE,11}+class_test{RIPETIZIONE,12}+class_test{RIPETIZIONE,13}+class_test{RIPETIZIONE,14}+...
class_test{RIPETIZIONE,15}+class_test{RIPETIZIONE,16}+class_test{RIPETIZIONE,17}+class_test{RIPETIZIONE,18}+class_test{RIPETIZIONE,19}+class_test{RIPETIZIONE,20}+...
class_test{RIPETIZIONE,21}+class_test{RIPETIZIONE,22}+class_test{RIPETIZIONE,23}+class_test{RIPETIZIONE,24}+...
class_test{RIPETIZIONE,25}+class_test{RIPETIZIONE,26}+class_test{RIPETIZIONE,27}+class_test{RIPETIZIONE,28}+class_test{RIPETIZIONE,29}+class_test{RIPETIZIONE,30};
end
but looping also on the rows. I tried something like:
for RIPETIZIONE = 1:N_RIPETIZIONI
for cols =2:N_cols
test_set_class{RIPETIZIONE}=class_test{RIPETIZIONE,1}+class_test{RIPETIZIONE,cols};
end
end
but I am not sure that it does what I want.
Any help please?
Accepted Answer
More Answers (1)
Jan
on 7 Jul 2021
Yes, this does, what you expect. Simply compare the results of both methods.
This is faster and looks cleaner:
for RIPETIZIONE = 1:N_RIPETIZIONI
S = 0;
for cols =2:N_cols
S = S + class_test{RIPETIZIONE, cols};
end
test_set_class{RIPETIZIONE} = S;
end
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!