Vectorization of 3 nested for loops.
2 views (last 30 days)
Show older comments
Emiliano Rosso
on 6 Sep 2015
Commented: Emiliano Rosso
on 7 Sep 2015
I have 3 for loop and I want to vectorized it .
I try a lot to do it but I cannot do it.
This is the simple version.
I can't explain the whole situation but:
A is 100*82.
B is 203*2000.
C is 1*10.
D is 100*5*2000.
for nset=1:100
for nindy=1:5
for nimp=1:2000
if A(nset,2+(nindy-1).*3)==1
if B(33.*6+nindy,nimp)<= C(1+(nindy-1).*2)+...
((C(2+(nindy-1).*2)-C(1+(nindy-1).*2))./11).*A(nset,1+(nindy-1).*3)
D(nset,nindy,nimp)=1;
end
end
end
end
end
I want to replace the 3 for loops with vectorization...
Thanks....
0 Comments
Accepted Answer
per isakson
on 6 Sep 2015
Edited: per isakson
on 6 Sep 2015
I don't think that your code can be vectorized. However, this should be a bit faster
for nset=1:100
for nindy=1:5
if A(nset,2+(nindy-1).*3)==1
C17 = C(1+(nindy-1).*2) ...
+ ((C(2+(nindy-1).*2)-C(1+(nindy-1).*2))./11).*A(nset,1+(nindy-1).*3);
for nimp=1:2000
if B(33.*6+nindy,nimp) <= C17
D(nset,nindy,nimp) = 1;
end
end
end
end
end
Caveat: I have neither tested correctness nor speed.
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!