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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部