楼主: yanglyqx
4762 5

[作业] 如何在R语言中使用loop函数进行矩阵运算 [推广有奖]

  • 0关注
  • 0粉丝

大专生

60%

还不是VIP/贵宾

-

威望
0
论坛币
9 个
通用积分
0.9000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1272 点
帖子
17
精华
0
在线时间
95 小时
注册时间
2020-1-27
最后登录
2024-2-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我有两个矩阵,A为2*3,B为3*2,想要在R语言中通过loops函数计算A*B的结果应该如何写程序呢?希望得到各位大神的帮助
二维码

扫码加我 拉你入群

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

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

关键词:矩阵运算 loop R语言 Loops OPS

沙发
owenqi 在职认证  学生认证  发表于 2022-2-8 12:27:30 |只看作者 |坛友微信交流群
照着乘法的定义做就可以了。比如
  1. x <- 1:6
  2. A <- matrix(x, 2, 3)
  3. B <- t(A)

  4. m <- nrow(A)
  5. n <- ncol(B)

  6. M <- matrix(NA, m, n)

  7. for(i in 1:m)
  8.   for(j in 1:n)
  9.     M[i,j] <- sum(A[i,] * B[,j])

  10. M
  11. A %*% B   
复制代码

使用道具

藤椅
yanglyqx 学生认证  发表于 2022-2-9 23:08:04 |只看作者 |坛友微信交流群
owenqi 发表于 2022-2-8 12:27
照着乘法的定义做就可以了。比如
谢谢!我按照您的方法试了一下,显示Error in A[i, ] : incorrect number of dimensions,想请教一下这是哪一步出了问题呢?
A <- matrix(data=1,6,4,2,5,7, nrow = 2, ncol = 3, byrow = FALSE, dimnames = NULL)
A
B <- matrix(data=4,11,13,6,8,3, nrow = 3, ncol = 2, nrow = 3, ncol = 2, byrow = FALSE, dimnames = NULL)
B

m <- nrow(A)
n <- ncol(B)

M <- matrix(NA, nrow = m, ncol =n )

for(i in 1:m)
  for(j in 1:n)
    M[i,j] <- sum(A[i,]*B[,j])

M
A %*% B

使用道具

板凳
owenqi 在职认证  学生认证  发表于 2022-2-11 07:09:49 |只看作者 |坛友微信交流群
yanglyqx 发表于 2022-2-9 23:08
谢谢!我按照您的方法试了一下,显示Error in A : incorrect number of dimensions,想请教一下这是哪一步 ...
  1. A <- matrix(data=1,6,4,2,5,7, nrow = 2, ncol = 3, byrow = FALSE, dimnames = NULL)
复制代码
应该是
  1. A <- matrix(data = c(1,6,4,2,5,7), nrow = 2, ncol = 3)
复制代码

使用道具

报纸
yanglyqx 学生认证  发表于 2022-2-13 20:22:03 |只看作者 |坛友微信交流群
owenqi 发表于 2022-2-11 07:09
应该是
解决了!非常感谢您!&#128591;

使用道具

地板
abelus 发表于 2022-3-2 14:13:08 |只看作者 |坛友微信交流群
为什么会有人想到要在R这种高级语言中来用loop来求矩阵乘法

但凡任课老师有点责任心都不应布置这种作业吧

连FORTRAN这种古老的语言,也是直接函数(运算符)搞定了。

使用道具

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

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

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

GMT+8, 2024-9-17 14:41