Summing elements of a vector without a for loop
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
daniel adams
le 29 Oct 2021
Modifié(e) : Yongjian Feng
le 2 Nov 2021
Given a vector/array v of length , I would like to create a new vector of length M where the 1st component is the sum of the 1st 5 elements of v, the 2nd element is the sum of the next 5 elements of v,... and so on until we get to the last element which is the sum of the last 5 elements of v.
Is there a quick way to do this without using a for loop?
0 commentaires
Réponse acceptée
Yongjian Feng
le 29 Oct 2021
Modifié(e) : Yongjian Feng
le 2 Nov 2021
How about this:
M=3; % you know your M
v = ones(1, M^2); % your v vector
vReshaped = reshape(v, M, M)'; % Note need this.
result = sum(vReshaped, 2)';
3 commentaires
Stephen23
le 2 Nov 2021
n = 3;
v = 1:9; % square brackets are not required
r = sum(reshape(v,n,n),1) % transpose is not required
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!