difference matrix??

I'm not sure what this is called, but I want to calculate the cross-differences?? of values in a matrix such that:
f(
1 5 8
3 6 7
4 5 2
6 8 1
)
produces:
[
0 4 7
-4 0 3
-7 -3 0
]
[
0 3 4
-3 0 1
-4 -1 0
]
[
0 1 -2
-1 0 3
2 -3 0
]
[
0 2 -5
-2 0 -7
5 7 0
]
does anyone know what this is called, and how I can do it?

 채택된 답변

Sean de Wolski
Sean de Wolski 2012년 4월 24일

0 개 추천

x = [1 5 8
3 6 7
4 5 2
6 8 1]';
sz = size(x);
C = bsxfun(@minus,reshape(x,1,sz(1),sz(2)),reshape(x,sz(1),1,sz(2)))

댓글 수: 2

Walter
Walter 2012년 4월 24일
awesome.. do you know what this is called?
Sean de Wolski
Sean de Wolski 2012년 4월 24일
Nope. But I do know that it is very bsxfun-friendly and that makes it cool.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

제품

Community Treasure Hunt

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

Start Hunting!

Translated by