G =
graph with properties:
Edges: [4782×2 table]
Nodes: [692×0 table]
>> plot(G, 'XData', x1, 'YData', y1, 'ZData', z1)
Error using matlab.graphics.chart.primitive.GraphPlot
Expected XData to be an array with number of elements equal to 692.
这是从邻接矩阵创建图形,然后尝试将节点粘贴到特定坐标(x1,y1,z1)的输出,但是这给了我有关XData大小错误的错误。我从这里开始关注本教程:https://www.mathworks.com/help/matlab/ref/graph.plot.html
我可以用较小的设置重现错误:
a = [1 2 3]
b = [4 5 6]
c = [7 8 9]
d = [10 11 12]
e = [13 14 15]
f = [16 17 18]
G = graph(a,b,c)
plot(G, 'XData', d, 'YData', e, 'ZData', f)
给出相同的错误,只是“元素数等于6”
答案 0 :(得分:0)
在the documentation中,您似乎正在使用G = graph(s,t,weights)
的构造函数的graph
形式。在这种形式中,s
和t
是节点对。每个元素对[s(i),t(i)]
表示ID为s(i)
和t(i)
的节点之间的边缘。第三数组给出每个边缘的权重。因此,您的图具有3条边和6个节点:
a = [1 2 3];
b = [4 5 6];
c = [7 8 9];
G = graph(a,b,c)
您的节点编号为1到6,节点1和4之间有一条边,节点2和5之间有一条边,节点3和6之间有一条边。
因此,plot
函数中的这6个节点也需要6个坐标。