I would recommend calling your function something other than Digraph. MATLAB is case sensitive, so that does not conflict with the digraph function included in MATLAB, but it's close enough that making a typo could lead to calling a different function than you expected.
Now on to your main question. Since your edges have directions the graph function is not the right tool for this job. Use digraph (lower-case d) instead. Once you've performed your computations on the digraph to compute the weights, you can reverse the polarity of the edges with negative weights by call flipedge to reverse the direction of those edges. Once you've reversed those edges, I recommend replacing the Weights of the flipped edges with their absolute values.
