2
我看了幾篇關於這個錯誤的文章。但是,我發現我的矩陣是適當的大小,我仍然得到這個錯誤。我接下來認爲這個問題是階級,但他們是矩陣對象。我不確定發生了什麼事。這是我寫的函數:R:不一致陣列中的錯誤
library(Matrix)
library(MASS)
modify <- function(Vandermonde) {
s = svd(Vandermonde)
k = which(s$d < 1e-1)
u = matrix(s$u[,-k], nrow = nrow(s$u), byrow = FALSE)
v = matrix(s$v[,-k], nrow = nrow(s$v), byrow = FALSE)
modify = u * diag(s$d[-k]) * t(v)
}
基本上,我正在寫一個函數,一個長方形矩陣,檢查是否是單數。如果是,請將其設爲非單數。我檢查的矩陣是範德蒙德,我在這個函數之外創建。它是矩形的,因爲我有N行和m個功率。這些由任何人指定。我需要範德蒙解決問題
V(N)×X = F(n)的
其中V由n的= {1,2,3,4,...,N}和f(n)是整數序列的對應項。一個示例序列是H =
Place Value
1 1.000000e+00
2 3.000000e+00
3 1.300000e+01
4 8.700000e+01
5 1.053000e+03
6 2.857600e+04
7 2.141733e+06
8 5.081471e+08
9 4.021353e+11
10 1.073376e+15
11 9.700385e+18
12 2.984343e+23
13 3.147936e+28
14 1.147438e+34
我創建範德蒙與
mat = matrix(0,n, m + 1)
for (i in 1:n) {
for (j in 1:(m + 1)) {
mat[i,j] = input[i]^(j - 1)
}
}
其中在H的情況下的n = 14的我讓米= 10。要說明的,輸入是H $地點和預期產出是H $價值。
您可以請包括數據和/或代碼,將爲我們提供一個[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example )? –
@BenBolker:謝謝你的關注。我修改了我的問題以包含數據和代碼,以幫助您瞭解我所看到的內容。 – user1723196
dim(diag(s $ d [-k]))'是9x9; 'dim(t(v))'是9x11。你的意思是矩陣乘法('%*%')而不是採用Hadamard(元素)乘積? (你來自MATLAB,其中'*'表示矩陣乘法?) –