楼主: ted_gxx
6117 8

[问答] 如何在R中通过循环将一个矩阵分成多个向量并进行计算 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

高中生

17%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
97 点
帖子
15
精华
0
在线时间
19 小时
注册时间
2016-5-14
最后登录
2016-6-4

楼主
ted_gxx 发表于 2016-5-14 19:56:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我现在有一个矩阵,前一部分是这样:
1 0 0 0 0
0 0 0 1 0
0 1 0 0 0
1 0 0 5.01443e-79 0
1 0 0 0 0
1 0 0 0 0
1 2.864497e-146 0 4.959768e-52 0
0 0 0 1 0
1 0 0 0 0
1 0 0 0 0
0 0 0 1 0
0 0 1 0 0

在R里是
                  V1            V2            V3            V4            V5
  [1,]  1.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
  [2,]  0.000000e+00  0.000000e+00  0.000000e+00  1.000000e+00  0.000000e+00
  [3,]  0.000000e+00  1.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
  [4,]  1.000000e+00  0.000000e+00  0.000000e+00  5.014430e-79  0.000000e+00
  [5,]  1.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
  [6,]  1.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
  [7,]  1.000000e+00 2.864497e-146  0.000000e+00  4.959768e-52  0.000000e+00
  [8,]  0.000000e+00  0.000000e+00  0.000000e+00  1.000000e+00  0.000000e+00
  [9,]  1.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
[10,]  1.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
[11,]  0.000000e+00  0.000000e+00  0.000000e+00  1.000000e+00  0.000000e+00


这样的,因为他每行五个值,是我要用的一个向量,所以我想知道,怎么能够通过循环的方法,将这些向量从矩阵里面分别提取出来并批量命名。因为在接下来,我要用这些每行的向量互相进行相似度的计算。
比如我想要的效果是:
向量a_1:
         V1            V2            V3            V4            V5
1.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00

向量a_2:
         V1            V2            V3            V4            V5
0.000000e+00  0.000000e+00  0.000000e+00  1.000000e+00  0.000000e+00

这样的形式。

谢谢帮助!
二维码

扫码加我 拉你入群

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

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

关键词:接下来 相似度 循环 矩阵 向量

沙发
statisticer 发表于 2016-5-14 20:27:55
建议apply函数。

藤椅
statisticer 发表于 2016-5-14 20:29:03
建议apply函数。

板凳
hyu9910 在职认证  发表于 2016-5-14 20:37:24
矩阵可以用下标控制的嘛

报纸
ted_gxx 发表于 2016-5-14 20:44:40
hyu9910 发表于 2016-5-14 20:37
矩阵可以用下标控制的嘛
具体应该怎么使用呢?因为不知道怎么才能批量使用下标才能够将我的矩阵分解成多个向量

地板
ted_gxx 发表于 2016-5-14 20:46:22
statisticer 发表于 2016-5-14 20:29
建议apply函数。
您好,能仔细些吗 我看apply操作是对每行或者列进行操作,比如apply(xxx,1,mean)是对每行求平均,但是对于目前我的这种情况,应该怎么做才能将我的矩阵分解成多个向量?

7
hyu9910 在职认证  发表于 2016-5-14 20:49:37
ted_gxx 发表于 2016-5-14 20:44
具体应该怎么使用呢?因为不知道怎么才能批量使用下标才能够将我的矩阵分解成多个向量
行向量:theMat[i,:]。 列向量类推。

8
ted_gxx 发表于 2016-5-14 22:36:22
hyu9910 发表于 2016-5-14 20:49
行向量:theMat。 列向量类推。
您好,我现在是想用这些向量进行计算余弦相似度的操作,我的写法是这样的:
  1. >  for(i in 1:10){
  2. +  for(k in 1:10){
  3. + a<-sum(cornell_vector[i,]*cornell_vector[k,])/sqrt((sum(cornell_vector[i,]^2)*sum(cornell_vector[k,]^2)))
  4. + write(a,"D:\\test.txt",append=TRUE)
  5. + }}
复制代码
现在的结果我有几个问题:1.怎么能够每输出x个结果后在进行换行而不是每次输入都换行
2.我现在的结果是这个形式
  1. x
  2. 1
  3. 1
  4. 1
  5. 0
  6. 0
  7. 1
  8. 1
  9. 1
  10. 1
  11. 0
  12. 1
  13. 1
  14. 0
  15. 1
  16. 0
  17. 5.01443e-79
  18. 0
  19. 0
  20. 4.959768e-52
  21. 1
  22. 0
复制代码
请问这个x是什么东西……

3.因为我计算余弦相似度,请问怎么样可以得到每个节点余弦相似度最大的节点名称

希望您能够给予我一些帮助,谢谢您!

9
hyu9910 在职认证  发表于 2016-5-14 22:52:19
ted_gxx 发表于 2016-5-14 22:36
您好,我现在是想用这些向量进行计算余弦相似度的操作,我的写法是这样的:现在的结果我有几个问题:1.怎 ...
[1][2]: 这是列向量的显示,换成行向量显示,譬如用矩阵的转置函数:t()

后面个问题[3] 挺细节的,如果你之后还是琢磨不出来,那么再说

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 10:44