【发布时间】:2019-03-22 20:17:12
【问题描述】:
我需要从指定的矩阵中创建一个下三角矩阵,而不使用 lower.try 函数,特别是使用嵌套的 for 循环。 我已经走到这一步了……
d <- 6
m <- matrix(1:(d*d), d, d)
for(i in 2:nrow(m)) {
for (j in 1:col(m)) {
#...skipped code
}
}
请帮忙!
【问题讨论】:
-
什么意思“得到下三角矩阵”?如果您的预期输出与
lower.tri完全相同,那么您需要先创建一个空矩阵。如果您的预期输出不同,可能是矩阵下三角形值的向量,那么它将是一个向量。请具体说明此特定 6x6 矩阵的预期输出。这听起来像是家庭作业,对吗?如果是这样也没关系,但老实说这是一种很好的礼仪。 -
我的意思是我需要用零替换对角线以下的所有值。对不起,我是编码新手,这是我第一次发布编码问题,因此不知道礼仪。谢谢你告诉我
-
如果
i是你的行,j是你的列,那么你想替换i > j时的值,对吧?这应该标记出您 在对角线下方 的位置。有了它,创建一个if语句来检查它,如果为真,则将 0 分配给m[i,j]。 (即使忘记我们已经创建了lower.tri,也有更好/更快的方法可以做到这一点,但我知道你必须使用两个for循环。)