1樓:四維漢堡包
為啥不用R語言的矩陣呢?
網上搜了一下,沒有幾個講到矩陣乘法的。其實,R語言用 %運算子% 的形式,允許定義和原來運算子不一樣的運算。
然後,R語言定義了乙個%*%,專門來做矩陣乘法。中文資料我暫時找不到,不過你可以看看R自帶的幫助,還蠻細緻的說。
2樓:伊荻厄忒
如果我對你的notation理解正確的話,只要對1步轉移概率矩陣進行矩陣運算t次方得到t步概率轉移矩陣,然後取state 0的那一列column sum不就好了嗎。當然是column sum還是row sum取決於你的概率轉移矩陣的定義。還有,infinite states嗎朋友?
3樓:王介
與其說這是個演算法問題,還不如說這是個記憶體結構問題。一切取決於你如何儲存高維矩陣,最簡單的方法是建立個一維向量,然後按照某種方式將高維資料全部儲存在向量裡面。複雜點的話可以用array直接建立高維矩陣。
回來再更新細節
4樓:三川啦啦啦
獻醜了。期待看到更好的方案。
如果是問高維資料如何儲存,我建議用列表:A=list(1
:3,4
:6,7
:9)B
=list(11
:13,14
:16,16
:19)C
=list(21
:23,24
:26,27
:29)T
=list(A
,B,C
)>T[[
1]][[1
]][[1]]
[1]1
23[[1
]][[2]]
[1]4
56[[1
]][[3]]
[1]7
89[[2
]][[
2]][[1]]
[1]11
1213[[2
]][[2]]
[1]14
1516[[2
]][[3]]
[1]17
1819[[3
]][[
3]][[1]]
[1]21
2223[[3
]][[2]]
[1]24
2526[[3
]][[3]]
[1]27
2829
這樣我們就得到乙個 的立方陣,至於求和那就很簡單了:
>sum(as.
vector
(unlist(T
)))[1]
405可以驗證
S = 0
for(i in 1:3)for(j in 1:3)for(k in 1:3) S = S + T[[i]][[j]][[k]]
> S[1] 405
如何將多重求和轉化為如下的形式,
這需要將求和指標 按某種順序不重不漏地排列。
#可重複元素的樹形圖,以矩陣形式列出
CC<-
function(n
,m)B
=rep(B
,M/(n
*copy))C
[,i]=
t(B)
}C}#例:
3表示每層求和次數,
2表示求和重數
>CC(
3,2)
[,1][,
2][1
,]11[
2,]12
[3,]1
3[4,]
21[5
,]22[
6,]23
[7,]3
1[8,]
32[9
,]33這樣一來,求和指標就完美地排列下來,然後在構造計算 的函式時,定義自變數為指標向量 的函式:
P<-function(I
)expr
於是,無論是求幾重的求和,都可以用 重迴圈就搞定了(儘管是形式上的):#n
表示每層求和次數,
m表示求和重數S=
0;L=
n^m;
C=CC(
n,m)
for(iin
L)S我以前寫過不可重複元素的樹形圖的函式:
#樹形圖,n為
size,m
為初始數
#樹形圖採用矩陣形式表示
#這裡本來直接定義階乘函式就行了,但不知道當時抽了什麼筋,非要定義成gamma
函式gamma
<-function(n
)g}#在
Tree的基礎上轉化為矩陣形式
TT<-
function(n
,m)T
[[i]]=
T[[i]][-1]
L=length(T
[[i]])TT[,i
]=as.
vector(t
(matrix
(rep(T
[[i]],M/L
),L)))}TT}
#例:TT(4
,4)表示以
4為起始,1、
2、3作為分叉的樹形圖
>TT(
4,4)
[,1][,
2][,3
][,4]
[1,]4
123[
2,]41
32[3
,]421
3[4,]
4231
[5,]4
312[
6,]43
21如果去掉第一列,
>TT(
4,4)[,-1]
[,1][,
2][,3
][1,]
123[
2,]13
2[3,]
213[
4,]23
1[5,]
312[
6,]32
1就可以得到 的全排列。
5樓:
好問題,我一直也在尋找個更加簡潔的方法,但是現階段我一般都是套三個for loop:
for (i in 1:length(I)) {
for (j in 1:length(Jfor (k in 1:length(k
R語言大佬救救我!!!怎麼利用R函式rnorm編寫p維正態分佈的隨機數生成的R通用程式
首先,這是個錯題,非對角元應該是 否則,當 接近1,且 時,不能保證協方差矩陣的正定性。如問題三 set.seed 1 1 rMVnorm function n p,mu sigma2 rho else for k in1 p else return X 2n 100000 p 8mu 1 1 p ...
如何選擇python還是R語言?
生化環材 我不負責任地推薦Python。其他答主從易用性等方面分析了Python VS R的優缺點。他們說的都很有道理。那我推薦Python的原因是什麼呢?學Python容易跳槽轉行啊!據我所知,R語言目前僅僅是資料統計與生物資訊學用得比較多,如果不能確定以後僅使用R能不能夠用,乾脆直接上Pytho...
R語言批量處理csv檔案
莫小遠 as.list list.files map function x read.csv x reduce rbind 梅立霄 R語言是函式式程式語言。在函式式程式語言中,大部分情況可以不用for迴圈。files list.files directory read.csv paste0 dire...