2016-05-01 1 views
1

digraphの場合、数値ノードIDとして非正の整数を使用します。 例:私はこれを実行する場合有向グラフ関数で数値ノードIDとして非正の整数を使用するにはどうすればよいですか?

A = [-1 1 3]; 
B = [ 3 2 0]; 
plot(addedge(digraph, A , B)) 

、私はこの受信:使用

エラーを有向グラフ/ addedge> validateNodeIDs(ライン155)

数値ノードIDは正の整数でなければなりません。

答えて

0

、がdigraphは、ノードIDは、私が考えている、非正することはできません、良い機能ではありませんが、私はそれは以下のプログラミングの方法を使用して動作作った: -

行列の我々は有向グラフをしたいです:

A = [-1 1 3]; 
B = [ 3 2 0]; 

を今すぐ代わりのアプローチを使用してのdigraph's documentationすなわちplot(addedge(digraph, A , B))によると、代わりに次のコードを使用します

このコードは、負、ゼロ、または正のいずれの整数でも、すべての整数NodeIDに対して機能します。私はここで使用される戦略は、ノードの最小値は1になり、有向グラフが行われたときに、ノード値は、実際に表示するために、再度操​​作しているように、ノード値を操作することである

- :どのようにそれが動作

もの。

ステップ: -

  1. min([A,B])行列ABの最小値を求めます。
  2. これに-1を掛けて、結果を+1で加算します。すなわち-min([A,B])+1。したがって、上記の例では、[A,B]の最小値が-1であるため、-1と掛け合わされ、+1となり、1が加算され、+2となります。
  3. 結果にones(size(A))を掛けてと同じサイズの同じ数字の行列 を得る。したがって、上記の例では、(-min([A,B])+1)*ones(size(A))の結果は[2 2 2]

  4. ですぐ結果は[A、B]の最小値が1に等しくなるオリジナルAマトリックスに添加されます。最後に、有向グラフを操作ノードIDを用いて行われたとき

  5. 同じ操作が
  6. 今行列Bを用いて行われ、そのIDが使用して補正される。ax.NodeLabel=strsplit(num2str(min([A,B]):max([A,B])),' '); すなわち[A,B]の最小値から最大値[A,B]までの数字の配列が、min([A,B]):max([A,B])を使用して生成され、num2strを使用して文字列に変換されます。resulting string is then converted into a cell arrayは、ノードラベルを設定するための要件です。

出力: -

Output