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

2 vues (au cours des 30 derniers jours)
Hudson Romualdo
Hudson Romualdo le 11 Oct 2022
Réponse apportée : Andres le 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.

Réponse acceptée

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

Plus de réponses (1)

David Hill
David Hill le 11 Oct 2022
Modifié(e) : David Hill le 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 commentaires
David Hill
David Hill le 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
Hudson Romualdo le 11 Oct 2022
Nice! =)

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by