Is there a way to do the following without running a for loop.
1 view (last 30 days)
Show older comments
Srinivas Gopal Krishna
on 30 Jul 2020
Commented: Srinivas Gopal Krishna
on 31 Jul 2020
clear all
y=randi(5,1,5)';
A=zeros(5,5);
for i=1:5,
A(i,y(i))=1;
end
I want to know if this can be implemented without using a for loop.
0 Comments
Accepted Answer
Bruno Luong
on 30 Jul 2020
Edited: Bruno Luong
on 30 Jul 2020
y = randi(5,1,5)'
Then
A = accumarray([(1:5)' y(:)], 1, [5 5]);
or
A = zeros(5,5);
A(sub2ind(size(A),1:5,y'))=1
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!