[問題] 兩個矩陣同時操作

看板R_Language作者 (principal component QQ)時間8年前 (2017/07/13 18:21), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/2 (看更多)
[問題類型]: 兩個滿大的矩陣同時透過row來進行操作 用一個例子來說明我的問題 [軟體熟悉度]: 新手 [問題敘述]: A=[ 1 2 3 4 ] B=[ 1 2 3 4 ] A與B的column相同 [ 5 6 7 8 ] [ 5 6 7 8 ] [ 9 10 11 12 ] [ 9 10 11 12 ] [ 13 14 15 16 ] [ 13 14 15 16 ] [ 17 18 19 20 ] [ 17 18 19 20 ] [ 21 22 23 24 ] [ 25 26 27 28 ] [ 29 30 31 32 ] 我想透過類似apply的運算,將A與B兩個矩陣的Column分別提出來運算, 運算內容是有點複雜,用上述例子來說明。 A* B* 以第一個column來說,提出來的分別是 [ 1 ] [ 1 ] [ 5 ] [ 5 ] [ 9 ] [ 9 ] [ 13 ] [ 13 ] [ 17 ] [ 17 ] [ 21 ] [ 25 ] [ 29 ] 接著將A*每個元素與B*每個元素"乘積",也就是產生一個矩陣(向量也可以)如下 [ 1*1 1*5 1*9 1*13 1*17 1*21 1*25 1*29 ] [ 5*1 5*5 5*9 5*13 5*17 5*21 5*25 5*29 ] [ 9*1 9*5 9*9 9*13 9*17 9*21 9*25 9*29 ] [ 13*1 13*5 13*9 13*13 13*17 13*21 13*25 13*29 ] [ 17*1 17*5 17*9 17*13 17*17 17*21 17*25 17*29 ] 以此類推會產生 4 個矩陣(或向量),輸出方式目前想到只有 list 比較方便。 由於我們兩個矩陣A與B可能會有點大,因此希望可以稍微快一些的計算方法, 又希望程式碼可讀性可以高一點,讓自己以後比較容易看懂(修改)。 ~~~謝謝各位神人閱讀~~~ [程式範例]: 我有嘗試了一個方式,但我覺得可讀性很低, 希望可以改的更簡單易懂,速度更快一些。 我是用 指令outer 來做,以下程式碼,矩陣大一點就要等一些時間了QQ 程式碼貼於以下網址: http://ideone.com/NmFGVT [環境敘述]: win10 + R_64 [關鍵字]: outer apply mapply lapply -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 119.14.95.65 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1499941278.A.A8B.html

07/13 18:43, , 1F
mclapply,應該沒記錯,在linux下可以多核心運算,速
07/13 18:43, 1F

07/13 18:43, , 2F
度上會比較快
07/13 18:43, 2F

07/13 21:25, , 3F
https://pastebin.com/ENu4tD4N 跟你得差不多, 換成array
07/13 21:25, 3F
文章代碼(AID): #1PPqcUgB (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1PPqcUgB (R_Language)