楼主: 楚韵荆风
1174 1

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

  • 4关注
  • 20粉丝

已卖:66份资源

教授

31%

还不是VIP/贵宾

-

威望
0
论坛币
2271 个
通用积分
7.6593
学术水平
54 点
热心指数
84 点
信用等级
41 点
经验
78962 点
帖子
1230
精华
0
在线时间
1281 小时
注册时间
2009-7-2
最后登录
2025-2-20

楼主
楚韵荆风 学生认证  发表于 2014-3-31 17:14:42 |AI写论文

+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
拉您进交流群
GMT+8, 2026-2-1 19:52