How I can vectorize the next code?
정보
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
이전 댓글 표시
Hello. M is a matrix and v and w are vectors of the same length containing some indices of M. I want to vectorize the following code (without using loops)
for i=1:length(v);
M(v(i),w(i)) = 1;
end
댓글 수: 0
답변 (3개)
Azzi Abdelmalek
2012년 10월 1일
편집: Azzi Abdelmalek
2012년 10월 1일
M=magic(5); % example
v=1:2;
w=3:4
idx=sub2ind(size(M),v,w)
M(idx)=1
댓글 수: 0
Image Analyst
2012년 10월 1일
You simply do
M(v, w) = 1;
Here's proof:
M = magic(10)
v = randi(10, 5,1)
w = randi(10, 5,1)
M(v,w) = 1
댓글 수: 2
Alfredo Rojas
2012년 10월 1일
Image Analyst
2012년 10월 1일
편집: Image Analyst
2012년 10월 1일
Ah, you're right, that won't work (though it seems like it would). Use Azzi's code then.
Andrei Bobrov
2012년 10월 1일
편집: Andrei Bobrov
2012년 10월 1일
M = randi([100,300],10);
v = randi(10,7,1);
w = randi(10,7,1);
M(v + size(M,1)*(w-1)) = 1
댓글 수: 0
이 질문은 마감되었습니다.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!