如何在並行運行for
循環(因此我可以使用Windows機器上的所有處理器),結果是3維數組?我現在有代碼需要大約一個小時運行,是一樣的東西:具有陣列作爲輸出的並行`for`循環
guad = array(NA,c(1680,170,15))
for (r in 1:15)
{
name = paste("P:/......",r,".csv",sep="")
pp = read.table(name,sep=",",header=T)
#lots of stuff to calculate x (which is a matrix)
guad[,,r]= x #
}
我一直在尋找相關的問題,我想我可以使用foreach
,但我無法找到一個方法來矩陣組合成一個陣列。
我是新來的並行編程,所以任何幫助將非常感激!
看看'foreach'的'.combine'參數。你不需要預先爲'foreach'分配'guad',每次迭代只返回一個矩陣。所有的矩陣可以通過'foreach'組合成一個數組。研究幫助頁面和包裝小插曲。 – Roland
我看過'.combine',但它只允許c,cbind,rbind或函數,所以如何將矩陣組合到一個數組中? – sbg
通過將[函數](http://stackoverflow.com/q/15213463/1412059)傳遞給'.combine'來將矩陣綁定到數組中? – Roland