How to avoid that loop
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Alberto Menichetti
am 3 Mai 2016
Kommentiert: Steven Lord
am 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 Kommentare
the cyclist
am 3 Mai 2016
Bearbeitet: the cyclist
am 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)?
Akzeptierte Antwort
the cyclist
am 3 Mai 2016
If my speculation about what you meant it correct, then
k = cumprod(v)/v(1)
2 Kommentare
Steven Lord
am 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)])
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!