How to modify an array's elements using another element?

I need to write a for loop that will set each array element in bonusScore to the sum of itself and the next element (except for the last element which stays the same). Why why does my code yield these (incorrect) output numbers? What should I do to fix my code?
function bonusScores = CombineScores(numberScores, userScores)
for i = 1:numbersScores;
userScores(1) = userScores(1) .* 2 + userScores(2);
userScores(2) = userScores(2) .* 2 + userScores(3);
userScores(3) = userScores(3) .* 2 + userScores(4);
bonusScores = userScores;
end
end
Input: CombineScores(4, [10, 20, 30, 40]) Output: ans = 1800, 1960, 1080, 40

2 comentarios

KALYAN ACHARJYA
KALYAN ACHARJYA el 20 de Oct. de 2018
Editada: KALYAN ACHARJYA el 20 de Oct. de 2018
What results you are expecting on above-mentioned input?
Input: CombineScores(4, [10, 20, 30, 40])
I am expecting...
Output: [30, 50, 70, 40]
Thanks.

Iniciar sesión para comentar.

 Respuesta aceptada

Fix code:
function bonusScores = CombineScores(numberScores, userScores)
for i = 1:numberScores-1
userScores(i) = userScores(i) + userScores(i+1);
end
bonusScores = userScores;
end
Try
>> CombineScores(4, [10, 20, 30, 40])
ans =
30 50 70 40

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 20 de Oct. de 2018

Comentada:

el 23 de Oct. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by