楼主: yyyeeeeqq
829 5

[问答] r语言中可以实现对含有变量的矩阵进行计算吗 [推广有奖]

  • 0关注
  • 0粉丝

初中生

23%

还不是VIP/贵宾

-

威望
0
论坛币
14 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
76 点
帖子
3
精华
0
在线时间
23 小时
注册时间
2020-10-19
最后登录
2022-4-27

楼主
yyyeeeeqq 发表于 2021-12-15 17:47:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如题,比如说计算矩阵(a b)%*%t((c d))=ac+bd,abcd都不赋予具体的数值,就是希望计算一个通式,我知道matlab上可以通过定义变量来实现,但是现在需要在r上做,请问大家这种可以实现吗?
二维码

扫码加我 拉你入群

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

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

关键词:R语言 MATLAB matla atlab ABCD

沙发
szxship 发表于 2021-12-15 20:13:49
安装rSymPy包

藤椅
yyyeeeeqq 发表于 2021-12-16 21:02:58
szxship 发表于 2021-12-15 20:13
安装rSymPy包
你好,我这边安装了rsympy包试了好长时间还是实现不了,可以请教你一下具体是怎么实现的吗,其中f_z=(1,z,z^2,z^3,z^4), K=matrix(c(1,-1 ,0 ,0, 0, 0 ,0 ,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1),5,9,byrow=TRUE),想要计算f_z%*%K%*%t(K)%*%t(f_z)该如何实现呢?谢谢!

板凳
小朝 发表于 2021-12-19 23:39:08
不知道,但是可以自己可以写个函数
  1. library(stringr)

  2. # 构建两个符号矩阵乘法运算
  3. # Symbolic matrix multipl

  4. sym_mat_mul <- function(a,b){
  5.   # 输入项矩阵格式判断
  6.   if(is.matrix(a)==F){
  7.     cat('参数a不是矩阵格式')
  8.   } else if(is.matrix(a)==F){
  9.     cat('参数b不是矩阵格式')
  10.   } else {
  11.     a1 <- dim(a)
  12.     b1 <- dim(b)
  13.     # 矩阵运算判断
  14.     if(a1[2]==b1[1]){
  15.       # 初始化结果矩阵
  16.       res_matrix <- matrix(1,nrow = a1[1],ncol = b1[2])
  17.       
  18.       for (i in 1:a1[1]) {
  19.         for(j in 1:b1[2]){
  20.           res_matrix[i,j] <-  str_c(a[i,],b[,j],collapse = '+')
  21.         }
  22.       }
  23.       return(res_matrix)
  24.     }else{
  25.       cat('矩阵维度问题导致不能乘法')
  26.     }
  27.   }
  28. }

  29. a <- matrix(c('a','b'),1,2)
  30. b <- matrix(c('c','d'),2,1)
  31. sym_mat_mul(a,b)
复制代码

报纸
yyyeeeeqq 发表于 2021-12-20 15:54:32
小朝 发表于 2021-12-19 23:39
不知道,但是可以自己可以写个函数
但是这种是不是只能实现两个符号矩阵相乘,无法解决符号矩阵和数值矩阵相乘?

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

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