資源簡介
在matlab中運行的zigzag掃描程序
文件類型:MATLAB M-file (.m)
打開方式:MATLAB Editor
代碼片段和文件信息
function?out=zigzag(inaction)
%采用對稱法;
%原始矩陣必須是(2^n)*(2^n)的方陣;
%如果action的值為0,表示zigzag正向掃描;如果action的值為1表示zigzag反向掃描。
if?nargin<2
action=0;
end
i=1;????????????????????????????????????????????????????%
j=1;????????????????????????????????????????????????????%原始矩陣的下標
switch?action
case?0??????????????????????????????????????????????%正向掃描
f1=0;???????????????????????????????????????????%原始矩陣的下標i如何增長的標志
f2=0;???????????????????????????????????????????%原始矩陣的下標j如何增長的標志
m=size(in1);???????????????????????????????????%原始矩陣的大小
????????if?m==1
????????????error(‘正向掃描時的輸入參數in不能是一維的!!!‘);
????????end
for?k=1:m*m/2
out(k)=in(ij);
out(m*m+1-k)=in(m+1-im+1-j);
if?i==1?
f2=0;
if?f1==0
j=j+1;
f1=1;
else
i=i+1;
j=j-1;
end
???? else
???????? if?j==1
???????????? f1=0;
???????????? if?f2==0
???????????????? i=i+1;
???????????????? f2=1;
????
評論
共有 條評論