在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
2.4 常用的向量运算接下来将介绍一些常用的向量运算,包括算术和逻辑运算、向量索引以及一些创建向量的有用方法。然后将给出两个使用这些运算的扩展案例。 再回顾一次,标量实际上是一元向量,因此向量也可以相加,+算子按元素逐一进行运算。 如果你熟悉线性代数,当将两个向量相乘时,你也许会对所发生的感到惊讶。 但请记住,由于*函数的使用方式,实际上是元素和元素相乘。上例结果中的第一个元素5,是x的第一个元素1,与c(5,0,-1)中第一个元素5相乘的结果,以此类推。 2.4.2 向量索引 像这样的情况,使用length()函数通常很有用。例如,假设我们想选择向量z中除最后一个元素外的其他全部元素。以下代码可以实现: 对于上例,更常用的方法是z[1:2]。我们的程序可能需要处理长于二元的向量,此时第二种方法就更为通用。 在表达式1:i-1中,冒号运算符的优先级高于减号,因此先计算1:i,得到1:2,然后再减1。这意味着二元向量减去一元向量。这就要用到循环补齐,一元向量(1)将扩展为(1,1),与二元向量1:2的长度匹配。按元素逐一相减,得到结果(0,1)。 可以看到,如果x非空,seq(x)与1:length(x)的结果相同,但如果x为空,seq(x)正确地计算出空值NULL,导致上面的循环迭代0次。 rep()函数还有一个参数each,与times参数不同的是,它指定x交替重复的次数。 |
请发表评论