Suppose you have a list of vertices V
(#V by dim) and a list of edges E
(#E by 2) indexing V
, then one hacky to draw all of these edges with per-vertex color data DV
(#V by 1) is to use trisurf
:
trisurf(E(:,[1 1 2]),V(:,1),V(:,2),V(:,3),'CData',DV,'EdgeColor','interp');
However, if you try to use this trick to draw per-edge color data DE
(#E by 1), you'll find that 'EdgeColor','flat'
does not work. Instead you can explode you compact "mesh" of edges into individual edges and repeat you edge color data for each edge point:
trisurf(reshape([1:size(E,1),1:size(E,1)*2],[],3),V(E(:),1),V(E(:),2),V(E(:),3),'CData',repmat(DE,2,1),'EdgeColor','interp');