spm_vb_incidence.m 936 B

12345678910111213141516171819202122232425262728
  1. function A = spm_vb_incidence(edges,N)
  2. % Edge-node incidence matrix of a graph
  3. % FORMAT A = spm_vb_incidence(edges,N)
  4. %
  5. % edges [Ne x 2] list of neighboring voxel indices
  6. % N number of nodes (cardinality of node set)
  7. %
  8. % Ne number of edges (cardinality of edge set)
  9. % A [Ne x N] matrix - is the discrete analogue of the grad operator
  10. % A(ij,k) +1 if i=k, -1 if j=k, 0 otherwise, where ij is the edge
  11. % connecting nodes i and j, and k is in node set
  12. %__________________________________________________________________________
  13. % Copyright (C) 2005-2014 Wellcome Trust Centre for Neuroimaging
  14. % Lee Harrison
  15. % $Id: spm_vb_incidence.m 6079 2014-06-30 18:25:37Z spm $
  16. % Number of edges
  17. Ne = size(edges,1);
  18. % Number of nodes (if N is not specified)
  19. if nargin < 2
  20. N = max(edges(:));
  21. end
  22. % Edge-node incidence matrix
  23. A = sparse([1:Ne,1:Ne],[edges(:,1),edges(:,2)],...
  24. [ones(Ne,1),-ones(Ne,1)],Ne,N);