R语言求极大值,循环提示:【Error in if (x[i-1,]>x[i,]&x[

yifan_Niu |浏览2409次
2018/11/21 10:29

Minimum<-function(x){
  n<-nrow(x)
  x_min<-matrix(0,nrow = n)
  if(x[2,]>x[1,]){
    x_min[1,]<-x[1,]
  }
  if(x[n-1,]>x[n,]){
    x_min[n,]<-x[n,]
  }
  for (i in 2:n-1) {
    if(x[i-1,]>x[i,]&x[i+1,]>x[i,]){
      x_min[i,]<-x[i,]
    }
  }
}

自己写的求局部极小值的函数代码如上,现有一向量y,nrow=192。要求y的所有局部极小值点。

输入y_min<-Minimum(y),提示:

Error in if (x[i - 1, ] > x[i, ] & x[i + 1, ] > x[i, ]) { : 
 argument is of length zero


收藏关注

满意回答

2018/11/26 14:45

因为if只能做一次比较。


x[i-1,]是一列向量,跟另一向量比较,会有192个值,但是IF是没办法比较这192个值的。

jiangbeilu

其他回答(0)    我来补答
0人关注该问题
+1
 加载中...