Summing the even index elements of a 1D array

3 vues (au cours des 30 derniers jours)
Camden Nelson
Camden Nelson le 6 Mai 2023
Commenté : Camden Nelson le 6 Mai 2023
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

Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 6 Mai 2023
Modifié(e) : Atsushi Ueno le 6 Mai 2023
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 commentaires
Camden Nelson
Camden Nelson le 6 Mai 2023
That makes a lot of sense. Explains why I was getting some bizarre answers. Thank you so much!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by