How to fix this issue in the graph??

1 回表示 (過去 30 日間)
Aswin Sandirakumaran
Aswin Sandirakumaran 2018 年 6 月 28 日
回答済み: Ameer Hamza 2018 年 6 月 28 日
Gv = graph({'s1' 's_1' 's2' 's_2' },{'s2' 's_2','s3' 's_3'});
Gv.Nodes.Service = {'s1','s2','s_1','s_2','s3','s_3'}';
Application = Gv.Nodes;
Gvsub = graph();
figure(3)
hold on
plot(Gvsub);
hold off
for i = 1:numnodes(Gv)
if isempty(Gvsub.Nodes)
H = addnode(Gvsub,Gv.Nodes.Service(i));
else
H = addnode(Gvsub,Gv.Nodes.Service(i));
end
Application(1,:) = []; % REMOVING THE USED ROW AFTER BEING USED
end
PROBLEM: MY H is getting replaced till the last loop, instead it should store the values which got from the previous loop.
DOUBT: Since i am adding nodes to the Gvsub. Why Gvsub doesnt display the nodes which was obtained? Gvsub if plotted gives me a blank graph. HOW TO FIX THIS ISSUE?
OUTPUT: H graph should contains all the nodes of Gv. But now it just contains the last value of the last loop which is s_3 . HOW TO FIX THIS ISSUE?

採用された回答

Ameer Hamza
Ameer Hamza 2018 年 6 月 28 日
That is because you are adding nodes to Gvsub and saving it in H, the Gvsub variable does not change and in next iteration, it again adds one node and save it in H while Gvsub remain constant in all loop iterations. To fix this, change the code as follow
Gv = graph({'s1' 's_1' 's2' 's_2' },{'s2' 's_2','s3' 's_3'});
Gv.Nodes.Service = {'s1','s2','s_1','s_2','s3','s_3'}';
Application = Gv.Nodes;
Gvsub = graph();
figure(3)
hold on
plot(Gvsub);
hold off
H = Gvsub;
for i = 1:numnodes(Gv)
if isempty(Gvsub.Nodes)
H = addnode(H,Gv.Nodes.Service(i));
else
H = addnode(H,Gv.Nodes.Service(i));
end
Application(1,:) = []; % REMOVING THE USED ROW AFTER BEING USED
end

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSpecifying Target for Graphics Output についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by