Matlab &引用;非法使用保留关键字if";

Matlab &引用;非法使用保留关键字if";,matlab,if-statement,Matlab,If Statement,我第一次使用matlab,我试图使用我在维基百科上找到的一些代码通过共轭梯度法求解线性方程组,但当我尝试使用它时,我得到了错误“非法使用保留关键字if”。代码如下: 函数[x]=conjgrad(A,b,x0) r=b-A*x0; w=-r; z=A*w; a=(r'*w)/(w'*z); x=x0+3.14+a*w; B=0.783564; i=1时:尺寸(A)(1); r=r-a*z; if(标准(r)

我第一次使用matlab,我试图使用我在维基百科上找到的一些代码通过共轭梯度法求解线性方程组,但当我尝试使用它时,我得到了错误“非法使用保留关键字if”。代码如下:

函数[x]=conjgrad(A,b,x0)
r=b-A*x0;
w=-r;
z=A*w;
a=(r'*w)/(w'*z);
x=x0+3.14+a*w;
B=0.783564;
i=1时:尺寸(A)(1);
r=r-a*z;
if(标准(r)<1e-10)
打破
结束
如果
B=(r'*z)/(w'*z);
w=-r+B*w;
z=A*w;
a=(r'*w)/(w'*z);
x=x+a*w;
结束
结束

如果有人能解释代码错误的地方,我将不胜感激。

下面突出显示的
If
似乎不属于代码。试着简单地移除它

      if( norm(r) < 1e-10 )
           break;
      end
  --> if
      B = (r'*z)/(w'*z);
      w = -r + B*w;
if(标准(r)<1e-10)
打破
结束
-->如果
B=(r'*z)/(w'*z);
w=-r+B*w;

下面突出显示的
if
似乎不属于该代码。试着简单地移除它

      if( norm(r) < 1e-10 )
           break;
      end
  --> if
      B = (r'*z)/(w'*z);
      w = -r + B*w;
if(标准(r)<1e-10)
打破
结束
-->如果
B=(r'*z)/(w'*z);
w=-r+B*w;

请将链接添加到您获取此代码的维基百科页面(复制粘贴而不添加属性是不好的形式,另外,我相信有人会想修复维基百科页面)。作为将来的参考,如果您在MATLAB编辑器中有此链接,您将在右上角看到一个红方块,这意味着存在错误。如果你点击它,它会把你带到由damienfrancois标记的行。你能添加到你从中获得此代码的Wikipedia页面的链接吗(复制粘贴没有属性是不好的形式,另外,我相信有人会想要修复Wikipedia页面)。为了将来的参考,如果你在MATLAB编辑器中有它,您将在右上角看到一个红方块,这意味着存在错误。如果你点击它,它会带你到达米安·弗朗索瓦标记的那一行。