# How to sum a single column of a cell whose content are vectors

2 views (last 30 days)
Hudson Romualdo on 11 Oct 2022
Answered: Andres on 11 Oct 2022
How to sum a single column of a cell whose content is a vector?
data = cell(20,2);
for i=1:20
data{i,1} = i;
data{i,2} = rand(1,13);
end
My goal is to sum all values of column 2 (that are vectors) in one scallar.

Andres on 11 Oct 2022
Using cellfun is fine, but use it with the sum function.
data = cell(20,2);
for i=1:20
data{i,1} = i;
data{i,2} = rand(1,13);
end
value = sum(cellfun(@sum,data(:,2)))

David Hill on 11 Oct 2022
Edited: David Hill on 11 Oct 2022
Simple loop.
data = cell(20,2);
for i=1:20
data{i,1} = i;
data{i,2} = rand(1,13);
end
s=0;
for k=1:size(data,1)
s=s+sum(data{k,2});
end
s
s = 129.3577
##### 3 CommentsShow 1 older commentHide 1 older comment
David Hill on 11 Oct 2022
data = cell(20,2);
for i=1:20
data{i,1} = i;
data{i,2} = rand(1,13);
end
s=sum(arrayfun(@(x)sum(data{x,2}),1:size(data,1)))
s = 135.0550
Hudson Romualdo on 11 Oct 2022
Nice! =)