# Summing the even index elements of a 1D array

5 vues (au cours des 30 derniers jours)
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
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

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 commentairesAfficher AucuneMasquer Aucune
Atsushi Ueno le 6 Mai 2023
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 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.

### Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

R2023a

### Community Treasure Hunt

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

Start Hunting!

Translated by