r - 如何从矩阵中调用变量...从列表中?
问题描述
基本上,它在标题中。虽然有更多细节,但我有四个参数集需要组织在矩阵中,我组织在一个列表(Alphaset)中,每个都有 4 个变量。但是我需要将特定变量调用到一个循环中,它将通过一个方程并应该给我一个图。
我和我对 R 的贫乏知识尝试了导致效率低下的不同组合,例如“Alphaset[2,1,1]”或“Alphaset[2(1,1)]”(这是我要显示的示例第二个矩阵的第一行第一列的变量)。
#Parameters set on types (lambda 1, lambda 2, alphas)
Lambda1set<-c(5,5,3,3.2)
Lambda2set<-c(4,4,5,3)
Alphaset<-list(matrix(c(0.01, 0.007, 0.0045, 0.01),ncol = 2, byrow = TRUE),
matrix(c(0.01, 0.003, 0.007, 0.01),ncol = 2, byrow = TRUE),
matrix(c(0.01, 0.0055, 0.003, 0.01),ncol = 2, byrow = TRUE),
matrix(c(0.005, 0.005, 0.0045, 0.004),ncol = 2, byrow = TRUE))
#Creating vectors
TimeVec<-seq(0,years,1)
N1<-matrix(0,4,years+1)
N2<-matrix(0,4,years+1)
#INITIALIZATION
N0 <- 40
N1[1] <-N0
N2[1] <-N0
for (t in 1:years){
for(i in 1:4){
N1[i,t+1]<-(Lambda1set[i]*N1[i,t])/(1+alphs[1,1]*N1[i,t]+alphs[1,2]*N2[i,t])
N2[i,t+1]<-(lambda2set[i]*N2[i,t])/(1+alphs[2,1]*N1[i,t]+alphs[2,2]*N2[i,t])
}
}
plot(TimeVec,N1,type="l",xlab='Time (years)',ylab='Population Density',col='blue',
lwd = 2,ylim = c(0,400))
在这里,您可以在方程式中看到“alphs[..,..]”应该代表我要使用的每个 i 矩阵中的哪个变量。
但是关于我的矩阵列表,我该如何称呼它们呢?
解决方案
只需将alphs
变量定义如下:
alphs <- Alphaset[[i]]
就在第 21 行之后:for(i in 1:4){
推荐阅读
- linux - 登录到不同用户目录中的 MLflow 服务器
- ios - AlertController,更改消息并在一段时间后关闭
- c# - 使用 .NET Framework 3.0 和更早版本的非英语环境中的 LDAP 查询
- matlab - 使用 ODE45 求解 M*u''+K*u=f(t) 的常微分方程,其中 M 和 K 是 4X4 矩阵
- sql - SQL (PLSQL) 对一组行进行编号
- javascript - 在 VUE 3 中,如何将包含 @click 事件的 HTML 代码插入到已经渲染的页面中
- git - git 提交的“-a”选项如何写入提交消息?
- python - 使用 .yaml 创建环境时包冲突
- python - 如果通过某些路由访问,则禁用 WTForms CSRF
- javascript - 为什么“填充”属性会为整个 svg 区域着色而不仅仅是路径?