hxjiangsha 发表于 2006-5-12 09:10

请教这道程序是哪里出现了错误?望请指点!!

<P>我在算术编码是遇到一个问题:<BR>比如循环如下:<BR>m=3;<BR>n=4;<BR>M=;<BR>kkk=1;<BR>for k=1:m<BR>    for kk=1:n<BR>      data=M(k,kk);<BR>      while 1&gt;0<BR>            if data&lt;2<BR>                break;<BR>            else<BR>                N(kkk)=data;<BR>                sign=1;<BR>            end <BR>            if sign==1<BR>                kkk=kkk+1;<BR>                break;<BR>            end    <BR>      end<BR>    end<BR>end   <BR>                <BR>我要的输入结果是矩阵M中的所有大于等于2的元素呀!<BR>可输出结果确实如下:<BR>Columns 1 through 10 </P>
<P>   3   3   2   3   3   2   2   3   3   2</P>
<P>Columns 11 through 12 </P>
<P>   3   3<BR>后面明显是多了三个元素的。<BR>这是怎么回事呢?<BR>望请赐教!!!<BR>谢谢!!</P>

feichang61 发表于 2006-5-12 12:43

没有问题呀,你在前面加个clc,clear看看

feichang61 发表于 2006-5-12 12:52

2,3,3正好是M后面的三位,你应该是workspace中有N变量吧

raby_yu 发表于 2006-5-12 14:07

<P>似乎问题出在else的break语句上,下面是我的程式,没有考虑data&lt;2的情形,仅供参考!<BR>clear,clc<BR>M=;<BR>=size(M);<BR>kkk=1;<BR>for k=1:m<BR>    for kk=1:n<BR>      data=M(k,kk)<BR>      if data&gt;=2<BR>         N(kkk)=data<BR>            kkk=kkk+1;<BR>      end<BR>    end<BR>end</P>

hxjiangsha 发表于 2006-5-12 18:29

<P>我测试一下!<BR>谢谢两位的指点先!!!</P>
页: [1]
查看完整版本: 请教这道程序是哪里出现了错误?望请指点!!