1
對於有向圖,我想使用非正整數作爲數字節點ID。 例如;如何使用非正整數作爲digraph函數中的數字節點ID?
A = [-1 1 3];
B = [ 3 2 0];
plot(addedge(digraph, A , B))
如果我運行此,我收到此:使用
錯誤有向圖/ addedge> validateNodeIDs(線155)
數值節點ID必須是正整數。
對於有向圖,我想使用非正整數作爲數字節點ID。 例如;如何使用非正整數作爲digraph函數中的數字節點ID?
A = [-1 1 3];
B = [ 3 2 0];
plot(addedge(digraph, A , B))
如果我運行此,我收到此:使用
錯誤有向圖/ addedge> validateNodeIDs(線155)
數值節點ID必須是正整數。
雖然digraph
不允許節點ID爲不積極,我認爲這,是不是一個很好的功能,但我做了它的工作使用以下編程的方法: -
矩陣爲我們希望使有向圖是:
A = [-1 1 3];
B = [ 3 2 0];
現在,而不是使用方法根據digraph
's documentation即plot(addedge(digraph, A , B))
,使用下面的代碼來代替:
ax=plot(addedge(digraph,(-min([A,B])+1)*ones(size(A))+A,(-min([A,B])+1)*ones(size(B))+B));
ax.NodeLabel=strsplit(num2str(min([A,B]):max([A,B])),' ');
此代碼適用於每個整數節點ID,無論是負值,零還是正值。
我這裏使用的是操作節點值的策略,使節點的最小值爲1。與有向圖是由時,節點值再次操作顯示實際那些。
步驟: -
min([A,B])
查找矩陣A
和B
的最小值。-1
,結果加上+1
。即-min([A,B])+1
。因此,在上面的示例中,因爲[A,B]
的最小值是-1
,所以它與-1
相乘,這給出+1
然後1
被添加到其中,其產生+2
。然後將結果乘以ones(size(A))
以獲得與A
具有相同大小的所有相同數字的矩陣 。所以,在上面的例子中,(-min([A,B])+1)*ones(size(A))
結果是[2 2 2]
現在的結果被添加到原始A
矩陣這使得[A,B]等於1
最小值。當最後向圖與操縱節點ID由
ax.NodeLabel=strsplit(num2str(min([A,B]):max([A,B])),' ');
即使用min([A,B]):max([A,B])
生成從最小值[A,B]
到最大值[A,B]
的數字陣列,然後使用num2str
,resulting string is then converted into a cell array將其轉換爲字符串,這是設置節點標籤的要求。