matlab 矩阵的z字形扫描,MATLAB实现按Z字形编码矩阵
i=i+1;
else
j=j+1;
end
tag=1;
end
end
end
end
%% 按Z字形逆变换
function [B]=iZTransform(A)
sizeA=size(A);
B=zeros(sizeA(1),sizeA(2));
i=1;
j=1;
B(i,j)=A(i,j);
i=i+1;
index=0;
tag=1;
while (i+j)<=(sizeA(1)+sizeA(2))&&i<=sizeA(1)&&j<=sizeA(2)
if i==sizeA(1)&&j==sizeA(2)
index=index+1;
%B(fix(index/sizeA(2))+1,mod(index,sizeA(2))+1)=A(i,j);
B(i,j)=A(fix(index/sizeA(2))+1,mod(index,sizeA(2))+1);
break;
end
if tag==1
while i<=sizeA(1)&&j<=sizeA(2)&&i>=1&&j>=1
index=index+1;
%B(fix(index/sizeA(2))+1,mod(index,sizeA(2))+1)=A(i,j);
B(i,j)=A(fix(index/sizeA(2))+1,mod(index,sizeA(2))+1);
i=i-1;
j=j+1;
end
i=i+1;
j=j-1;
if jj=j+1;
else
i=i+1;
end
tag=0;
else if tag==0
while i<=sizeA(1)&&j<=sizeA(2)&&i>=1&&j>=1
index=index+1;
%B(fix(index/sizeA(2))+1,mod(index,sizeA(2))+1)=A(i,j);
B(i,j)=A(fix(index/sizeA(2))+1,mod(index,sizeA(2))+1);
i=i+1;
j=j-1;
end
i=i-1;
j=j+1;
if ii=i+1;
else
j=j+1;
end
tag=1;
end
end
end
end
例子:
A =
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
B=zTransform(A)
B =
1 4 2
3 5 7
10 8 6
9 11 13
16 14 12
15 17 18
C=iZTransform(B)
C =
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
