Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将矩阵与向量相乘得到矩阵_R_Matrix Multiplication_Lsa - Fatal编程技术网

R 将矩阵与向量相乘得到矩阵

R 将矩阵与向量相乘得到矩阵,r,matrix-multiplication,lsa,R,Matrix Multiplication,Lsa,我有一个文件术语矩阵: document_term_matrix <- as.matrix(DocumentTermMatrix(corpus, control = list(stemming = FALSE, stopwords=FALSE, minWordLength=3, removeNumbers=TRUE, removePunctuation=TRUE ))) tf_idf的维度也是nxm 最初,我不希望这种乘法有效,因为维度是不一致的。然而,考虑到这个输出,我现在期望gw_i

我有一个文件术语矩阵:

document_term_matrix <- as.matrix(DocumentTermMatrix(corpus, control = list(stemming = FALSE, stopwords=FALSE, minWordLength=3, removeNumbers=TRUE, removePunctuation=TRUE )))
tf_idf
的维度也是nxm


最初,我不希望这种乘法有效,因为维度是不一致的。然而,考虑到这个输出,我现在期望
gw_idf
的维度是mxm。真的是这样吗?如果是这样:大小为
n
gw\u idf
向量发生了什么?

矩阵乘法是在R中使用
%*%
,而不是
*
(后者只是元素乘法)。你的推理部分正确,只是使用了错误的符号

关于矩阵乘法,只有当第一个矩阵的第二维与第二个矩阵的第一维相同时,矩阵乘法才可能。结果尺寸是第一个矩阵的dim1乘以第二个矩阵的dim2

在你的例子中,你告诉我们你有一个
1xn
矩阵乘以一个
nxm
矩阵,这应该得到一个
1xm
矩阵。您可以在本例中检查这种情况:

a <- matrix(runif(100, 0 , 1), nrow = 1, ncol = 100)
b <- matrix(runif(100 * 200, 0, 1), nrow = 100, ncol = 200)

c <- a %*% b
dim(c)
[1] 1 200

a是的,对不起,我之前没有正确说明尺寸。我现在已经改变了尺寸。执行元素相乘的事实解释了答案。没问题!对于新手来说,这是一个很好的问题。
tf_idf <- lw_tf * gw_idf
a <- matrix(runif(100, 0 , 1), nrow = 1, ncol = 100)
b <- matrix(runif(100 * 200, 0, 1), nrow = 100, ncol = 200)

c <- a %*% b
dim(c)
[1] 1 200