Zigzag逆扫描代码 MATLAB版
即将一个1 * k 长度的向量,逆扫描为 M * N 的矩阵(如果 k < M * N,则在 M * N 的矩阵中用 0 补齐;若 k > M * N,则向量会被截断)。
代码如下,仅供参考。
function mtr = izigzagScan(vec, m, n)
% izigzagScan(vec, m, n) Inverse zigzag scan.
% mtr = izigzagScan(vec, m, n) inverse zigzag scan of vec, and the target
% matrix is m-by-n. The input parameter vec is an 1-by-k vector. If the
% length of vector is smaller than the size of mtr (i.e. k < m*n), then, the
% pargram will use 0 to fill the matrix. If k > m*n, the vector will be truncated.
%
% version: v1.0
% author: tianlan
% time: Dec 16, 2016
% CHECK INPUT ARGUMENTS
if nargin < 3
error('Not enough input arguments!');
elseif nargin > 3
error('Too many input arguments!');
end
% Get length of vector.
[mv,nv,tv] = size(vec);
if tv ~= 1 || mv ~=1
error('The input vector needs to be 1-by-k vec