gpt4 book ai didi

r - 相乘向量组合

转载 作者:行者123 更新时间:2023-12-04 14:23:30 24 4
gpt4 key购买 nike

普通 R 向量乘法,只将向量相乘一次,或者循环使用较短的向量。 IE:

> c(2,3,4) * c(1,2)
[1] 2 6 4
Warning message:
In c(2, 3, 4) * c(1, 2) :
longer object length is not a multiple of shorter object length

我想做的是将两个向量的每个组合相乘。在这种特定情况下,我正在计算电动自行车电机可以旋转的最大速度(以 MPH 为单位):*
d <- c(20,26,29) #bicycle wheel diameter possibilities in inches
rpm <- c(150,350) #maximum motor RPM. Choices depends on motor winding.
cir <- pi * d #circumference
mph <- cir * rpm / 63360 * 60 #max speed in mph for each wheel diameter and RPM combination
mph

我想要的是 mph 包含给定车轮直径和给定最大电机 RPM 的每个最大速度组合。

* 请注意,由于反电动势,它将在此速度下产生零扭矩。

最佳答案

您可能正在寻找 outer()或者它的别名二元运算符 %o% :

> c(2,3,4) %o% c(1,2)
[,1] [,2]
[1,] 2 4
[2,] 3 6
[3,] 4 8
> outer(c(2,3,4), c(1,2))
[,1] [,2]
[1,] 2 4
[2,] 3 6
[3,] 4 8

在您的情况下, outer()提供了指定应用于组合的功能的灵活性; %o%仅适用于 *乘法函数。对于您的示例和数据
mph <- function(d, rpm) {
cir <- pi * d
cir * rpm / 63360 * 60
}

> outer(c(20,26,29), c(150,350), FUN = mph)
[,1] [,2]
[1,] 8.924979 20.82495
[2,] 11.602473 27.07244
[3,] 12.941220 30.19618

关于r - 相乘向量组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com