Hello,
I am trying to sum my vector by 2 elements.
An example:
I have:
A= [1;2;3;4;5;6]
What I want:
A_new = [3;7;11]
Is there any way to easily code this?
I know one way via a for-loop but I was wondering if there was a more efficient way.
Thanks in advance!

 採用された回答

Stephen23
Stephen23 2021 年 1 月 25 日
編集済み: Stephen23 2021 年 1 月 25 日

1 投票

A = [1;2;3;4;5;6];
B = A(1:2:end) + A(2:2:end)
B = 3×1
3 7 11
or more generally:
B = sum(reshape(A,2,[]),1).'
B = 3×1
3 7 11
or
B = reshape(A,2,[]).' * ones(2,1)
B = 3×1
3 7 11
or
B = cellfun(@sum,mat2cell(A,2*ones(1,3),1))
B = 3×1
3 7 11

1 件のコメント

Ann-Lara Aernoudts
Ann-Lara Aernoudts 2021 年 1 月 25 日
Perfect, that works!
I'll use the more general code.
Thank you!

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

その他の回答 (1 件)

Abdel
Abdel 2023 年 9 月 18 日

0 投票

The sum of the last two elements in (call the result ans6)

カテゴリ

質問済み:

2021 年 1 月 25 日

回答済み:

2023 年 9 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by