stema 发表于 2006-4-11 09:04

问个问题,请指教

<P>下面是我的一个函数:<BR>function k=demoBreak(n)<BR>x=rand(1,n);<BR>k=1;<BR>while k&lt;=n<BR>      if x(k)&gt;0.8<BR>          break<BR>      end<BR>      k=k+1;<BR>end<BR>disp(x(k));<BR>在命令行运行时出现如下故障:<BR>&gt;&gt; demoBreak(1)<BR>??? Attempted to access x(2); index out of bounds because numel(x)=1.</P>
<P>Error in ==&gt; demoBreak at 10<BR>disp(x(k));<BR>我不明白的是x明明是rand(1,n),与k的取值无关呀。而且也没有限定边界呀。<BR>还请大虾指点迷津。不胜感谢!</P>

aspen 发表于 2006-4-11 09:11

回复:(stema)问个问题,请指教

不管n取多少,你这段循环完之后k都等于n+1<BR>而x只有n个<BR>当然出错

stema 发表于 2006-4-11 09:27

回复:(aspen)回复:(stema)问个问题,请指教

哦,明白了<BR>谢谢啦
页: [1]
查看完整版本: 问个问题,请指教