资源简介

可对任意大小的矩阵进行zigzag排序 可用于JPEG压缩等过程。 Matlab程序 非常好用,欢迎下载!

资源截图

代码片段和文件信息

function output = zigzag(input)
%input = rand(54);
% turn an inputting matrix into a sequence by the zigzag order wiht length of total data in the matrix

% size of matrix
[widlong] = size(input);

% initialization for beginning.
direct = 1;          %  direction of address increasing
                     %  direct == 1 indicate increasing from j
                     %  direct == -1 indicate increasing from i 
point = input;     %% address of point
count = 1;             % number counter
N = 2;               % instantaneous constant 

i = 1;               %% address valuable
j = 1;

%  initialization for scan order
sequence(count) = point(ij);
count = count + 1;
    
while N <= wid+long    %  endding condition
       
    while direct == 1           %  increase from j
        i = i-1;
        j = j+1;
        
        if i > 0 & j <= long              %  whether it is the border
            sequence(count) = point(ij);
            count = count + 1;    
            
        elseif i <= 0 & j <= long               % when scanning border is occuring
            i = 1;
            j = j;
            direct = -1;
            N = N+1;
            sequence(count) = point(ij);
            count = count + 1;
            
        else                               %  when another scanning border is occuring        
            j = long;

评论

共有 条评论