MATLAB Answers

Sum of array items into another array

16 ビュー (過去 30 日間)
np
np 2016 年 6 月 22 日
コメント済み: Shameer Parmar 2016 年 6 月 24 日
I need to find the sum of items within each of the 360 arrays and then make another array with just the sums.
  8 件のコメント
Kirby Fears
Kirby Fears 2016 年 6 月 22 日
I understand that the values inside of speed1 and speed2 are numeric, but you wrote your example as "data.speed1". So are speed1 and speed2 contained in a workspace variable called data or not?

サインインしてコメントする。

採用された回答

Kirby Fears
Kirby Fears 2016 年 6 月 22 日
Assuming data is a struct with fields speed1, speed2, etc.
sumArray = structfun(@sum,data);

その他の回答 (2 件)

Guillaume
Guillaume 2016 年 6 月 23 日
If your structure has fields other than the speed fields, you can loop over a hardcoded number of speed fields:
numspeed = 360;
speedsum = zeros(numspeed, 1);
for speedidx = 1:numspeed
speedsum(speedidx) = sum(data.(sprintf('speed%d', speedidx)));
end

Shameer Parmar
Shameer Parmar 2016 年 6 月 23 日
for i=1:length(fields(data))
s(i) = sum(eval(['data.speed',num2str(i)]));
end
  6 件のコメント
Shameer Parmar
Shameer Parmar 2016 年 6 月 24 日
Hello np..
I guess your length of fields(data) is more that 360, that why..
If yes, you can apply one more filter like..
for i=1:length(fields(data))
if i<=360
s(i) = sum(data.(['speed',num2str(i)]));
end
end

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by