Azzera filtri
Azzera filtri

difference matrix??

4 visualizzazioni (ultimi 30 giorni)
Walter
Walter il 24 Apr 2012
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?

Risposta accettata

Sean de Wolski
Sean de Wolski il 24 Apr 2012
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 Commenti
Walter
Walter il 24 Apr 2012
awesome.. do you know what this is called?
Sean de Wolski
Sean de Wolski il 24 Apr 2012
Nope. But I do know that it is very bsxfun-friendly and that makes it cool.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by