How do you vectorize the following for loop?
1 view (last 30 days)
Show older comments
I'm trying to vectorize this for loop. A and B are both vectors. The general idea is that D should be a vector made up of 0's and 1's whenever an element of B matches A. For example, since B(3)=6 and A(6)=6, D(6) should be equal to 1. Here's the non-vectorized (correct) code:
A=[1:10]'; B=[1 2 6 9]'; D=zeros(length(A),1);
for i=1:length(B) C=(A==B(i)); D=D+C; end
My initial guess at vectorization was this: (NOTE: this code is incorrect)
A=[1:10]'; B=[1 2 6 9]'; D=(A==B);
The error comment I get after running the incorrect code is: Error using == Matrix dimensions must agree.
Thanks ahead of time, and if I'm unclear in anyway, I'd gladly clarify.
0 Comments
Accepted Answer
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!