首页 > 解决方案 > 'endif' 命令与 octave 中的 'endfor' 问题匹配

问题描述

for i=1:128
  if (Analysis(4,i) != 0)
  Analysis (5,i) = Analysis (3,i) ./ Analysis (4,i);
  else if (Analysis(4,i) == 0)
    Analysis (5,i) = 10;
  endif
endfor

我是八度的新手。我看到这种类型的错误“ 'endif' 命令与 'endfor' 匹配”。我无法理解原因。

[注意我也检查了这个问题。这没有帮助。]

标签: octave

解决方案


正如烧杯在评论中指出的那样,正确的语法是elseif,不是else if。后者实际上意味着您的代码现在等同于:

for i=1:128
    if (Analysis(4,i) != 0)
        Analysis (5,i) = Analysis (3,i) ./ Analysis (4,i);
    else
        if (Analysis(4,i) == 0)
            Analysis (5,i) = 10;
        endif
    endfor

换句话说, octave 让您知道它遇到了 an endfor,它期望 anendif应该首先发生。


推荐阅读