Vectorizing a simple for loop
14 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi everyone, I'm not sure if people asked this before but I tried googling my question before posting.
so i know for this type of loop for example:
for i = 2:n-1
for j = 2:n-1
q(i,j) = a*u(i,j)
end
end
can be simply expressed as: q((2:n-1),(2:n-1)) = a*u((2:n-1),(2:n-1));
what if my expression was as follows: for i = 2:n-1 for j = 2:n-1 q(i,j) = a*u(i+1,j) end end
how could I incorporate the "i+1" expression into vectorizing.
Thank you for your help
0 Kommentare
Akzeptierte Antwort
Jan
am 3 Dez. 2011
q(2:n-1, 2:n-1) = a*u(3:n, 2:n-1);
4 Kommentare
Jan
am 5 Dez. 2011
The vectorization suffers from the need of large temporary arrays. Allocating memory for "q(2:(nx-1),2:(ny-1))" etc is very expensive, while the multiplication by a scalar is very cheap. Therefore the loop will be more efficient for large inputs.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!