我有以下代码段:
if(k<=100 && k>=0 )
{
j[k+seq(-50,150)]<-F;
}
else
{
j[k+seq(-100,100)]<-F;
}
以下错误:
j [k + seq(-50,150)]中的错误&lt; - F:只有0可以与负下标混合
为什么我得到这个,即使我已设置条件,如果下标可能 遇到负值?
答案 0 :(得分:10)
当k = 25
时,那么您的if
条件为真(k
小于100但大于0)。但是25 +( - 50)是-25。但是25 + 150 = 175,一个正指数。在子集化时,不能混合正负索引。
我想我应该补充一点,你不能做到这一点的原因是积极和消极的指数有不同的含义。 x[3]
表示您要选择第三个元素,而x[-3]
表示您想要省略第三个元素。如果您在选择其他元素的同时开始删除元素,那么跟踪哪些元素引用哪些元素会让人感到困惑。