找出向量差大于1的位置

时间:2012-02-02 17:44:45

标签: matlab

我无法弄清楚为什么这段代码无效:

我有一个像这样的矢量j

  

j = [1; 2; 4; 13; 14; 19; 20]

我正在尝试

for i=2:7
    j1=find(j(i)==(j(i-1)+1)
end

这应该给我一个[2,5,7]的j1对吗?出于某种原因,它给了我一个[1]或[0]

的j1

任何帮助将不胜感激,我也不喜欢使用find。我只需要j的指数,其中存在不连续性,即对于j我贴出它应该告诉我它从1,2跳到4和从4到13,14等等。

1 个答案:

答案 0 :(得分:3)

您可以更轻松地完成您想要的任务:

indexes = find( diff(j) > 1)

关于您的代码:

  1. find可以进行矢量化,无需使用for循环
  2. 您继续重新分配j1。相反,您可以j1(end+1) = ..