Summing the even index elements of a 1D array

9 次查看(过去 30 天)
I am trying to write a recursive function that sums the elements in even indexed position of a 1D array, but am not sure how to do this. I have some of the code started below, but it is obvously incorrect:
function [out] = mySumEven(A)
n = length(A);
if n == 1
out = 'No numbers in even positions';
elseif n == 2
out = A(2);
else
out = A(2) + mySumEven(A(4:n));
end
end

采纳的回答

Atsushi Ueno
Atsushi Ueno 2023-5-6
编辑:Atsushi Ueno 2023-5-6
mySumEven([1 2 3 4 5 6 7 8 9])
No numbers in even positions
ans = 20
function [out] = mySumEven(A)
n = length(A);
if n == 1
disp('No numbers in even positions'); % out = 'No numbers in even positions';
out = 0; % added
elseif n == 2
out = A(2);
else
out = A(2) + mySumEven(A(3:n)); % out = A(2) + mySumEven(A(4:n));
end
end
  2 个评论
Atsushi Ueno
Atsushi Ueno 2023-5-6
MATLAB can add numerical values and character vectors. The output is as numeric vector. It means every charactor code have been added by 1.
1 + [1 2 3 4]
ans = 1×4
2 3 4 5
1 + 'No numbers in even positions'
ans = 1×28
79 112 33 111 118 110 99 102 115 116 33 106 111 33 102 119 102 111 33 113 112 116 106 117 106 112 111 116
char(ans)
ans = 'Op!ovncfst!jo!fwfo!qptjujpot'
Camden Nelson
Camden Nelson 2023-5-6
That makes a lot of sense. Explains why I was getting some bizarre answers. Thank you so much!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by