Matlab中3D绘图的XData大小错误

时间:2018-10-01 17:57:23

标签: matlab graphing

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”

1 个答案:

答案 0 :(得分:0)

the documentation中,您似乎正在使用G = graph(s,t,weights)的构造函数的graph形式。在这种形式中,st是节点对。每个元素对[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个坐标。