【发布时间】:2018-12-29 18:38:58
【问题描述】:
Matlab 2018a 中 minspantree.m 的 2 个问题
大家好;我想找到一个矩阵的最小跨度树。我认为 MATLAB 自己的 minspantree.m 可能是最有效的算法。所以我用 打开 minspantree.m
问题来了:
1.minspantree.m中的代码使用了G.EdgeProperties.Weight和G.Underlying。 G 是一个图形对象。但是当我在命令窗口中使用 G.EdgeProperties.Weight 或 G.Underlying 时,两者都返回错误:使用图/子引用时出错(第 15 行)没有公共属性 'EdgeProperties' 用于类“图”。为什么?
2.minspantree.m 第62行:
[pred, edgeind] = primMinSpanningTree(G.Underlying, w, rootNode, restart);
primMinSpanningTree 是一个函数吗?但我在 minspantree.m 中找不到任何:function [] = primMinSpanningTree(),我也无法在整个磁盘中找到 primMinSpanningTree.m 文件。那么什么是primMinSpanningTree?它的代码是什么?如何找到并打开它?
非常感谢。
【问题讨论】:
-
那么你为什么不直接创建一个图表并调用
minspantree呢?你没有 2018a,还是有其他什么阻碍了你? -
1.我想学习它的算法。 2.我想改变一些东西,更个性化。
-
Prim 算法的伪代码在大多数算法教科书(至少我见过的)中都有,并且在网上有很多描述和实现。它也是一种更容易实现的算法,只使用邻接矩阵,然后通过添加更复杂的数据结构来改进。 Wikipedia 对实现进行了很好的讨论。如果你想学习算法,我建议你尝试自己实现它。如果您遇到问题,我们会随时为您提供帮助。