matlab - Matlab 中 3D 绘图的 XData 大小错误
问题描述
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”
解决方案
查看文档,您似乎正在使用G = graph(s,t,weights)
构造函数的形式graph
。在这种形式下,s
和t
是节点对。每个元素对表示 ID和[s(i),t(i)]
的节点之间的一条边。第三个数组给出了每条边的权重。因此,您的图有 3 条边和 6 个节点:s(i)
t(i)
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 个坐标。
推荐阅读
- python - 如何提高模型损失和准确率?
- dart - 如何获取正在运行的进程列表
- controller - 如何通过 JMeter 脚本中的单个线程组执行多个测试片段
- reactjs - 使用反应和打字稿单击按钮时如何显示对话框?
- cluster-computing - 超级计算:更少的节点和更多的 cpu/node vs. 更多的节点和更少的每个节点的 cpu
- c++ - C++11 atomic<>:只能用提供的方法读/写?
- react-native - mapStateToProps 必须与 getDerivedStateFromProps 一起使用吗?
- linux - Linux 中网络使用的替代方案
- gis - 创建自定义地图叠加层(折线)[Mapbox]
- java - 使用 java web-application 在多个页面上保存数据