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

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.

 Accepted Answer

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)))

More Answers (1)

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 Comments

Thanks for the answer @David Hill.
But now I saw that my question is not clear enough.
I'm wondering if it is possible to do this sum in just one line.
Like that:
value = sum(cellfun(@double,data(:,2)))
But in this case, the cell column have scalar values not vectors.
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

Sign in to comment.

Categories

Asked:

on 11 Oct 2022

Answered:

on 11 Oct 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!