matlab Zigzag scanning(蛇形矩阵)

    技术2022-08-16  87

    %Zigzag scanning n = 8; a = zeros(n); % 初始化 a(1,1) = 1; i = 1; %行 j = 1; %列 f = 0; %标志位 1表示行增加列减小 k = 2; % 循环赋值 从左上角开始循环 while(k < n^2+1) if(j == n) % 已到右边界 向下移动1 行增加 f=1 i = i+1; f=1; a(i,j) = k; k=k+1; i = i+1; j = j-1; elseif(i == n) % 已到下边界 向右移动1 列增加 f=0 j = j+1; f=0; a(i,j) = k; k=k+1; i = i-1; j = j+1; elseif(i == 1) % 已到上边界 向右移动1 行增加 f=0 j = j+1; f=1; a(i,j) = k; k=k+1; i = i+1; j = j-1; elseif(j == 1) % 已到左边界 向下移动1 列增加 f=1 i = i+1; f=0; a(i,j) = k; k=k+1; i = i-1; j = j+1; elseif(f == 1) %行增加 列减小 i = i+1; j = j-1; else %行减小 列增加 i = i-1; j = j+1; end % 赋值 if(k > n^2) break; end a(i,j) = k; k=k+1; end disp(a);

    看不懂自己以前用c++写的了:  https://download.csdn.net/download/qq_38204686/9926679 

    Processed: 0.019, SQL: 9