matlab中的phytree对象究竟是什么?

时间:2015-04-23 23:20:40

标签: matlab

这个问题困扰了我一段时间,所以我在这里张贴以防其他人有类似的问题。在调试代码以询问它打印出变量之后,我理解phytree对象是一个包含三个字段的struct数组,即tree,dist和names。这里,树是一个矩阵,其大小为分支数乘以2.但由于数据很大,我无法弄清楚矩阵树究竟是什么。有人可以帮忙吗?提前致谢。

1 个答案:

答案 0 :(得分:1)

seqneighjoin的输出不是包含字段tree distnames的结构数组,它是一个phytree个对象,它有一些内部属性称为treedistnames。由于您已经使用调试器查看代码,请查看phytree.m末尾的行 - 您将看到它指定输出{{1} }是类tr的对象,而不是结构。

我不确定你是否有很多背景在MATLAB中使用面向对象的编程,但它比我在这里讨论的话题更大 - 我只是说"对象"是具有属性的东西,它以与struct具有存储信息的字段相同的方式存储信息;但是一个对象也有方法,它们是作为对象的一部分存储并作用于它的函数。对于phytree对象,这些方法的功能包括phytree用于删除分支,prune用于获取Newick格式的字符串,等等。

您可以在文档中找到有关MATLAB OO编程的更多信息。不幸的是,这有点问题 - 在R2008a中,MATLAB引入了一种新的OO形式,所有当前的文档都基于这种OO风格。 getnewickstr是使用旧的OO样式实现的,因此您可能需要查看旧版MATLAB的doc以找出它的语法。

您不应该尝试直接访问内部phytree媒体资源。如果您想获得它,请使用tree。它是一个数组,列出哪些分支与其他分支/叶子连接。