我正在使用矩陣運行 for 回圈。一行不能正常作業:
K[1:2,i] * FF[i] %*% K1[i,1:2]
K 是一個 2 x n 矩陣,其中 i 在 for 回圈中更新。FF 是一個陣列(1:n),K1 是 K 的轉置。從 for 回圈中取出,初始值:
n <- 100
K <- matrix(c(2,1), nrow=2, ncol=n)
K1 = t(K)
FF <- array(1:n)
FF[1] <- 10^7
K[1:2,1] * FF[1] %*% K1[1,1:2]
R 給我的結果是一個 1 * 2 矩陣。它應該是一個 2 * 2 矩陣。
我試圖排除 FF,但矩陣尺寸也不正確。
感謝您的幫助!
uj5u.com熱心網友回復:
你有2個問題。一個是 R 急切地將單列矩陣轉換為向量,因此K[1:2,1]
被解釋為向量,而不是矩陣。我們可以用 to 的drop = FALSE
引數來解決這個問題[
。
還有一個操作順序問題,%*%
優先級高于*
,所以我們需要括號來*
首先發生:
(K[1:2, 1, drop = F] * FF[1]) %*% K1[1, 1:2]
# [,1] [,2]
# [1,] 4e 07 2e 07
# [2,] 2e 07 1e 07
與您的問題無關,但制作FF
陣列似乎很奇怪,似乎長度為 100 的向量會更簡單。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/488569.html
下一篇:從R中的字符向量中提取有效數字