楼主: 楚韵荆风
1024 1

[问答] 请教列数相同的两个矩阵的一种运算 [推广有奖]

  • 4关注
  • 20粉丝

教授

31%

还不是VIP/贵宾

-

威望
0
论坛币
2270 个
通用积分
7.2807
学术水平
54 点
热心指数
84 点
信用等级
41 点
经验
78965 点
帖子
1231
精华
0
在线时间
1280 小时
注册时间
2009-7-2
最后登录
2024-4-2

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
具体问题如下:
$X=(x_{ij})_{1\leq i \leq n,1\leq j\leq p}$ 是一个$n \times p$的矩阵,$Y=(y_{ij})_{1\leq i \leq m, 1\leq j \leq p}$是$m \times p$矩阵,想得到一个$n \times m$的矩阵$A=(a_{ij})_{1\leq i \leq n, 1\leq j \leq m}$,其中第$(i,j)$位置的元素$a_{ij}$是$X$的第$i$行与$Y$的第$j$行相减取欧式范数, 即:$a_{ij}=\sqrt{\sum_{k=1}^p(x_{ik}-y_{jk})^2}$.


前提条件是要求不用for循环,不知道R中有没有命令可以办到。

现请教高人、版主,谢谢~!

二维码

扫码加我 拉你入群

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

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

关键词:Times for循环 time 请教高人 Tim 元素

共享是一种彼此的快乐
沙发
楚韵荆风 学生认证  发表于 2014-3-31 17:50:05 |只看作者 |坛友微信交流群
估计高手都在忙,还是我自己来回答,发帖之后突然想到了一种方法可以实现:

比如取$n=2, m=3, p=5$,运行如下代码:

  1. X = matrix(rnorm(10), nrow=2)
  2. Y = matrix(rnorm(15), nrow=3)
  3. md = as.matrix(dist(rbind(X,Y), method= "euclidean", diag=TRUE, upper=TRUE))
  4. mdxy = md[1:nrow(X), 1:nrow(Y)+nrow(X)]
复制代码

结果:
  1. > X
  2.           [,1]       [,2]       [,3]       [,4]      [,5]
  3. [1,] 1.6741896 -2.4732737 -0.8529473  0.6916798 0.2012295
  4. [2,] 0.7859348 -0.3511513  1.9598555 -0.3153195 0.5537247
  5. > Y
  6.            [,1]       [,2]       [,3]        [,4]       [,5]
  7. [1,] -0.4497822 -0.2509841  0.6954218  0.05381741  0.5840551
  8. [2,]  1.1579344 -0.8200333 -1.1820556  0.24159313 -0.9079551
  9. [3,]  1.3984399  0.5707790 -0.5236833 -0.96103996  0.2395182
  10. > mdxy
  11.     3              4              5
  12. 1 3.521462 2.130940 3.490510
  13. 2 1.809145 3.560407 2.812252
复制代码



共享是一种彼此的快乐

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-22 01:03