请教这道程序是哪里出现了错误?望请指点!!
<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>0<BR> if data<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> 没有问题呀,你在前面加个clc,clear看看 2,3,3正好是M后面的三位,你应该是workspace中有N变量吧 <P>似乎问题出在else的break语句上,下面是我的程式,没有考虑data<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>=2<BR> N(kkk)=data<BR> kkk=kkk+1;<BR> end<BR> end<BR>end</P> <P>我测试一下!<BR>谢谢两位的指点先!!!</P>
页:
[1]