Quick way to find element by element difference betwen two vectors

조회 수: 3 (최근 30일)
I have two vectors, roughly of size 5000 each. Let’s call them vec1 and vec2. I would like a matrix of size 5000 x 5000 where the (i,j)th element represents the absolute difference between the ith element of vec1 and the jth element of vec2.
I've written my code as follows but it's very slow. I may need to expand the dimensionality of the problem so a quick way to do this would be much appreciated. Does anyone have a better way to do this?
mat=zeros(size(vec1,1),size(vec2,2));
for i=1:size(mat,1)
for j=1:size(mat,2)
mat(i,j)=abs(vec2(j)-vec1(i));
end
end

채택된 답변

James Tursa
James Tursa 2016년 8월 2일
mat = abs(bsxfun(@minus,vec2(:).',vec1(:)));

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Parallel Computing에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by