查看单个帖子
旧 2009-03-28, 12:36   #1
rain1206
初级会员
 
注册日期: 2009-02-26
年龄: 39
帖子: 18
声望力: 17
rain1206 正向着好的方向发展
默认 [求助]matlab实现对一个8列矩阵的编码程序

b=[1 0 0 0 1 0 0 1;1 0 0 1 0 1 0 0;1 0 0 1 1 0 0 0;1 0 0 1 1 1 1 1]
[m,n]=size(b);
f=[];
f(1,1:8)=b(1,1:8);
for i=2:m
if b(i,5:8)==[1 1 1 1]
b(i,5:8)=[0 1 1 1];
end
if b(i,1:4)~=b(i-1,1:4)
f(i*4+1i+1)*4)=[1 1 1 1];
f((i+1)*4+1i+2)*4)=b(i,1:4);
f((i+2)*4+1i+3)*4)=b(i,5:8);
else
f(i*4+1i+1)*4)=b(i,5:8);
end
end
f

我想实现对一个8列矩阵的编码,编码的思想是:每一行代表一个码,前四列为段码,后四列为段内码,若相邻码的段码一致,即在同一段,就只存储短内码;若若相邻码的段码不一致,即不在同一段,则在段码之前插入【1 1 1 1】,后面跟的是段码,段内码;为了与段内码的加以区别,若段内码为【1 1 1 1】,则将其减1 。
以上是我写的程序,但是运行结果不准确,须插入的【1 1 1 1】时未能插入, 希望高手指点一下,谢谢!
rain1206 当前离线   回复时引用此帖