我有一些向量vect
,我想要遍历一个矩阵的行向量v
并计算:
cov(v, vect)
。
我尝试过:
for(vect in mat2) #where mat2 is a 215 by 31 matrix
然而,每个向量似乎都是一个值为1的标量。
- 我如何迭代矩阵的行向量?
- 为了更好地计算
cov(v, vect)
的总和,其中 v 是行向量,我该如何使用高阶函数left-fold
和right-fold
?
我有一些向量vect
,我想要遍历一个矩阵的行向量v
并计算:
cov(v, vect)
。
我尝试过:
for(vect in mat2) #where mat2 is a 215 by 31 matrix
然而,每个向量似乎都是一个值为1的标量。
cov(v, vect)
的总和,其中 v 是行向量,我该如何使用高阶函数 left-fold
和 right-fold
?你是否正在寻找应用
?
apply(mat2, 1, function(v)cov(v,vect))
cov(v, vect)
的总和。 - CodeKingPlusPlusvect
是某个任意向量(用于监督),而mat2
中的每个向量v
都具有与vect
相同的31个维度。 - CodeKingPlusPlusmat2
中的每个行向量v
求和covariance(v, vect)
。我认为你可能是指协方差矩阵,但我更看作相应协方差的向量,或者是相应协方差的列表。 - CodeKingPlusPluscov
不会返回一个矩阵。您是指这个吗:sum(apply(mat2, 1, function(v)cov(v,vect)))
? - user1981275apply(mat2, 1, function(v) cov(v, vect))
apply函数允许您在行(如果第二个参数为1)或列(如果为2)或更高维度(如果>2)上应用任意函数。它比使用循环更快。
?for
吗?你需要仔细思考一下自己在做什么。 - Carl Witthoft