我有一个矩阵和一个向量,想要更改矩阵位置的值,其中向量中的值为负。
x <- c(1,-5,4,-8,9)
X <- matrix(c(5,7,3,
-5,6,8,
9,-6,4,
2,-1,-3,
5,2,4),byrow=TRUE, nrow=5)
对于x的所有值,其中i <0取位置并乘以X在整个行中的该位置乘以-1
这应该是结果:
X2 <- matrix(c(5,7,3,
5,-6,-8,
9,-6,4,
-2,1,3,
5,2,4),byrow=TRUE, nrow=5)
这是我尝试过的,但它不起作用:
if (x[i] > 0) {
X[i, ] <- (- X[i, ])
}
print(X)
答案 0 :(得分:6)
我认为你不需要循环,试试这个。
<td style="height:75px">
<div style="height: 75px; opacity: 0.99;" id="MSOPictureLibrarySlideshowWebPart_ctl00_ctl40_g_79ca5882_ef72_482a_9f70_94b4a8c6804e_text">
<span id="MSOPictureLibrarySlideshowWebPart_ctl00_ctl40_g_79ca5882_ef72_482a_9f70_94b4a8c6804e_title" class="ms-slideshow-title"></span><br>
</div>
</td>
答案 1 :(得分:0)
试试这个:
x <- c(1,-5,4,-8,9)
X <- matrix(c(5,7,3,
-5,6,8,
9,-6,4,
2,-1,-3,
5,2,4),byrow=TRUE, nrow=5)
x
X
for(i in 1:length(x)){
if (x[i] < 0) {
X[i, ] <- - X[i, ]
}
}
X
答案 2 :(得分:0)
这个怎么样?
uiOutput
数据强>
for (i in seq_along(x)) {
if (x[i] < 0) {
X[i, ] <- -X[i, ]
}
}
print(X)
[,1] [,2] [,3]
[1,] 5 7 3
[2,] 5 -6 -8
[3,] 9 -6 4
[4,] -2 1 3
[5,] 5 2 4