r - 将输出存储在 R 的子矩阵中
问题描述
Nh<-matrix(c(17,26,30,17,23, 17 ,24, 23), nrow=2, ncol=4h); Nh
Sh<-matrix(c(8.290133, 6.241174, 6.096808, 7.4449672, 6.894924, 7.692115,
4.540521, 7.409122), nrow=2, ncol=4); Sh
NhSh<-as.matrix(Nh*Sh); NhSh
rh<-c( 0.70710678, 0.40824829, 0.28867513, 0.22360680, 0.18257419,
0.15430335, 0.13363062, 0.11785113, 0.10540926, 0.09534626); rh
pv<-matrix(nrow=4, ncol=10)
for (i in 1:4)
{
pv[i,]<-as.matrix(NhSh[1,i]*rh)
}
pv
对于 1 行,它可以很好地给出输出
#> pv
########[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#[1,] 99.65416 57.53535 40.68364 31.51341 25.73059 21.74632 18.83287 16.60903 14.85557 13.43736
#[2,] 129.33283 74.67034 52.79991 40.89863 33.39359 28.22274 24.44161 21.55547 19.27980 17.43924
#[3,] 112.13529 64.74134 45.77904 35.46029 28.95321 24.46993 21.19158 18.68922 16.71614 15.12032
#[4,] 77.05520 44.48784 31.45765 24.36699 19.89557 16.81482 14.56206 12.84253 11.48671 10.39012
对于两行
pv<-matrix(nrow=8, ncol=10)
for(k in 1:8)
{
for (j in 1:2) # there are 2 rows in NhSh
{
for (i in 1:4) # there are 4 elements in 1 row
{
pv[k,]<-as.matrix(NhSh[j,i]*rh) # It should multiply 1st element of 1st
#row with all values of rh and save results in 1st row of pv
}
}
}
pv
##> pv
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] #[,9] [,10]
#[1,] 120.4979 69.56951 49.19307 38.10479 31.11243 26.2948 22.77197 20.08299 #17.96277 16.24794
#[2,] 120.4979 69.56951 49.19307 38.10479 31.11243 26.2948 22.77197 20.08299 #17.96277 16.24794
#[3,] 120.4979 69.56951 49.19307 38.10479 31.11243 26.2948 22.77197 20.08299 #17.96277 16.24794
#[4,] 120.4979 69.56951 49.19307 38.10479 31.11243 26.2948 22.77197 20.08299 #17.96277 16.24794
#[5,] 120.4979 69.56951 49.19307 38.10479 31.11243 26.2948 22.77197 20.08299 #17.96277 16.24794
#[6,] 120.4979 69.56951 49.19307 38.10479 31.11243 26.2948 22.77197 20.08299 #17.96277 16.24794
#[7,] 120.4979 69.56951 49.19307 38.10479 31.11243 26.2948 22.77197 20.08299 #17.96277 16.24794
#[8,] 120.4979 69.56951 49.19307 38.10479 31.11243 26.2948 22.77197 20.08299 #17.96277 16.24794
但如果有人能帮忙,我需要这个输出
########[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#[1,] 99.65416 57.53535 40.68364 31.51341 25.73059 21.74632 18.83287 16.60903 14.85557 13.43736
#[2,] 129.33283 74.67034 52.79991 40.89863 33.39359 28.22274 24.44161 21.55547 19.27980 17.43924
#[3,] 112.13529 64.74134 45.77904 35.46029 28.95321 24.46993 21.19158 18.68922 16.71614 15.12032
#[4,] 77.05520 44.48784 31.45765 24.36699 19.89557 16.81482 14.56206 12.84253 11.48671 10.39012
#[5,] 114.74259 66.24666 46.84346 36.28479 29.62641 25.03889 21.68431 19.12376 17.10482 15.47189
#[6,] 89.49458 51.66972 36.53601 28.30067 23.10740 19.52932 16.91288 14.91576 13.34106 12.06745
#[7,] 92.46549 53.38498 37.74888 29.24016 23.87449 20.17762 17.47434 15.41092 13.78394 12.46804
#[8,] 120.49793 69.56951 49.19307 38.10479 31.11243 26.29480 22.77197 20.08299 17.96277 16.24794
其次,是否可以给前 4 行和后 4 行命名,以便我可以调用两个子矩阵,每个子矩阵包含 4 行和 10 列,并提供它们的参考以供进一步计算?
解决方案
我们可以做的
pv <- c()
for (j in 1:2) {
for (i in 1:4) {
pv <- rbind(pv, NhSh[j,i]*rh)
}
}
pv
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
#[1,] 99.65416 57.53535 40.68364 31.51341 25.73059 21.74632 18.83287 16.60903 14.85557 13.43736
#[2,] 129.33283 74.67034 52.79991 40.89863 33.39359 28.22274 24.44161 21.55547 19.27980 17.43924
#[3,] 112.13529 64.74134 45.77904 35.46029 28.95321 24.46993 21.19158 18.68922 16.71614 15.12032
#[4,] 77.05520 44.48784 31.45765 24.36699 19.89557 16.81482 14.56206 12.84253 11.48671 10.39012
#[5,] 114.74259 66.24666 46.84346 36.28479 29.62641 25.03889 21.68431 19.12376 17.10482 15.47189
#[6,] 89.49458 51.66972 36.53601 28.30067 23.10740 19.52932 16.91288 14.91576 13.34106 12.06745
#[7,] 92.46549 53.38498 37.74888 29.24016 23.87449 20.17762 17.47434 15.41092 13.78394 12.46804
#[8,] 120.49793 69.56951 49.19307 38.10479 31.11243 26.29480 22.77197 20.08299 17.96277 16.24794
row.names(pv) <- rep(c("a", "b"), each = 4)
lapply(split(seq_len(nrow(pv)), row.names(pv)), function(i) pv[i,])
推荐阅读
- c# - 复杂的 Linq 分组
- ruby - 如何在红宝石中使用数字作为符号
- python - 您必须使用 dtype float 和 shape [2,2] 为占位符张量“Placeholder”提供一个值
- sql - MERGE TVP + 更新记录时对列求和
- yii2 - 在 Yii2 中针对数据库中的哈希验证密码
- oracle - 通过从另一个中选择全部插入到表中,当语句为真时更改 PL/SQL 中的值
- python - 在 bqplot 图表中只得到一个条形图
- php - PHP PayPal API 更改
- gnuplot - 来自文件和参数球体的 gnuplot 曲线
- ruby-on-rails - 如何编写在每个 ActionDispatch::IntegrationTest 之前运行的基本设置和拆卸