MATLAB: Error when plotting a small digraph

adjacency matrixgraphplot

Running
figure; plot(digraph([0,0,1;1,0,0;1,0,0]))
on R2016a throws the error
Error using svd
Input to SVD must not contain NaN or Inf.
Error in orth (line 15)
[Q,S] = svd(A,'econ'); %S is always square.
Error in matlab.internal.graph.MLGraph/subspaceLayout>layoutOneConnComp (line 55)
M = orth(M);
Error in matlab.internal.graph.MLGraph/subspaceLayout (line 29)
xy = layoutOneConnComp(G,dim,1:G.NodeCount,L,deg);
Error in matlab.graphics.chart.primitive.GraphPlot/layoutforce
Error in matlab.graphics.chart.primitive.GraphPlot/layout>layoutauto
Error in matlab.graphics.chart.primitive.GraphPlot/layout
Error in matlab.graphics.chart.primitive.GraphPlot
Error in digraph/plot (line 96)
hObj = matlab.graphics.chart.primitive.GraphPlot('BasicGraph', ...
Using (e.g.) the circle layout works fine. Is there a workaround that lets me use the default/force layout or must I resort to something like a try/catch?

Best Answer

This bug was fixed in R2016b. I'm afraid there is no workaround except to check for the error and use another layout method ('circle' or 'layered'). This bug applies to a small set of directed graphs, undirected graphs are not affected.
Related Question