How to avoid that loop
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Alberto Menichetti
le 3 Mai 2016
Commenté : Steven Lord
le 3 Mai 2016
k(1) = 1;
for i=2:size(k)
k(i) = k(i-1)*v(i)
end
v(i) is a scalar and it's different on every iteration How could I do that without using a loop?
2 commentaires
the cyclist
le 3 Mai 2016
Modifié(e) : the cyclist
le 3 Mai 2016
As written, this loop will never be executed, because size(k) is 1, and
for i = 2:1
<stuff>
end
will have zero iterations.
Some coding mistake? Maybe you meant length(v)?
Réponse acceptée
the cyclist
le 3 Mai 2016
If my speculation about what you meant it correct, then
k = cumprod(v)/v(1)
2 commentaires
Steven Lord
le 3 Mai 2016
No, we understand you. Another approach that doesn't involve division:
v = randperm(8) % Sample data for demonstration purposes
k = cumprod([1 v(2:end)])
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!