《R语言编程艺术》——3.5 向量与矩阵的差异

3.5 向量与矩阵的差异

在本章开始的时候,我说过矩阵就是一个向量,只是多了两个属性:行数和列数。这里,我们再深入说明这个问题。考虑以下例子:
《R语言编程艺术》——3.5 向量与矩阵的差异
《R语言编程艺术》——3.5 向量与矩阵的差异

因为z是向量,因此我们可以求它的长度:

《R语言编程艺术》——3.5 向量与矩阵的差异

换句话说,从面向对象编程的角度说,矩阵类(matrix class)是实际存在的。如第1章所说,R的大部分类都是S3类,用$符号就可访问其各组件。矩阵类有一个dim属性,是一个由矩阵的行数和列数组成的向量。本书第9章讲详细介绍关于类的更多细节问题。
以用dim()函数访问dim属性:

《R语言编程艺术》——3.5 向量与矩阵的差异

这些其实都是对dim函数的一个简单封装。我们之前提到,在交互式模式中,只要直接输入对象名称就可以看见它的内容:

《R语言编程艺术》——3.5 向量与矩阵的差异

当要写一个以矩阵为参数的通用库函数,上面这几个函数将会很有用。因为能直接得到该矩阵的行数和列数,就不再需要两个额外的参数来输入行数和列数,这样更省事。这是面向对象编程的好处之一。