全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
28032 8
2014-01-29
悬赏 10 个论坛币 已解决
两个矩阵点对点相乘 (比如3X3的)。
但是其中一个矩阵的元素是list, 有点像是一个三维数组。 但是我想得到的结果也还是同大小的矩阵,而且每个元素也还是一个list.
有高手知道知道怎么操作吗?
Code是怎么写呢?

多谢!

最佳答案

ntsean 查看完整内容

matrix(lapply(1:length(A), function(i) A*B[]), nrow=nrow(A), ncol=ncol(A))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-1-29 16:57:37
matrix(lapply(1:length(A), function(i) A[i]*B[[i]]), nrow=nrow(A), ncol=ncol(A))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-1-29 18:15:57
没明白问题
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-1-29 18:28:58
就是比如
矩阵
A = 1,2
      3, 4

B = C, D
      E, F

但是C, D, E, F 每个元素不是一个单一数字,而是一个list, 比如 C= 5,6,7,8 等 
让矩阵A和B的每个元素对应相乘,1xC, 2XD... 其实C,D等 被乘的又是它包含的每一个元素(数字)。最后得到一个新的含有list 元素的2X2矩阵H。
A*B=
H = X, Y
      Z, K
X,Y ,Z,K 等又是一个个的list.
H 是我想要的结果 
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-1-29 22:30:27
复制代码
大概是这样子吧,然后再matrix一下  暂时没完全弄出来 ,明再看下,大过年的还在忙呢你们
不知道是不是你的意思
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-1-29 23:25:54
都回家过年了吗?
问题再具体一点 
A <- matrix(c(1,2,3,4), nrow=2, ncol=2)
A

C <- c(1,2,3)
D <- c(2,3,4)
E <- c(3,4,5)
F <- c(4,5,6)
B <- matrix(list(C,D,E,F), nrow=2, ncol=2)
B
求A*B
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群