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