0

我试图将 -5 放在矩阵的对角线上。我正在使用 if 语句。但我的 if 陈述是错误的。谁能给我一些帮助?

X= rbind(c(1.2,3.4,10.3),c(2,8,78),c(45,-36,8))
array(X,dim=c(3,3))
if (X != (1.2,8.0)){
    cat(X)
} else {
    cat(-5)
}
4

1 回答 1

3
X <- rbind(c(1.2, 3.4, 10.3), c(2, 8, 78), c(45, -36, 8))
diag(X) <- -5

Joshua 并没有像他们所说的那样想成为一个混蛋——很明显你是 R 的新手,因为你写的很多东西都行不通。

if 语句中的条件必须长度为 1,看起来好像您希望输入整个矩阵。if and that is 有一个矢量化版本,ifelse但它不会像您希望的那样为您的矩阵工作。

cat打印到控制台,但它不会为您替换矩阵中的元素。您需要进行某种替换才能真正做到这一点。

尝试手动识别对角线独有的元素来进行替换可能也不是最好的主意。有更好的方法——其中一些可以在 Joshua 链接到的介绍手册中找到。祝你好运。

于 2012-10-18T22:25:54.393 回答