shift.m

来自「一些基于CDMA的编码程序」· M 代码 · 共 42 行

M
42
字号
% Program CDMA-4
% shift.m
%
% shift the contens of the register.
%

function [outregi] = shift(inregi, shiftr, shiftu)

% -----------------------------------------------------------

% inregi   : Vector or matrix
% shiftr   : The amount of shift to the right.
% shiftu   : thr amount of shift to the top
% outregi  : Register output

% ------------------------------------------------------------

[h, v]   = size(inregi);
outregi  = inregi;

shiftr   = rem(shiftr,v);
shiftu   = rem(shiftu,h);

if shiftr > 0
    outregi(:,1:shiftr)     = inregi(:,v-shiftr+1:v);
    outregi(:,1+shiftr:v)   = inregi(:,1:v-shiftr);
elseif shiftr < 0
    outregi(:,1:v+shiftr)   = inregi(L,1-shiftr:h,:);
    outregi(:,v+shiftr+1:v) = inregi(:,1:-shiftr);
end

inregi = outregi;

if shiftu > 0
    outregi(1:h-shiftu,:)   = inregi(1+shiftu:h,:);
    outregi(h-shiftu+1:h,:) = inregi(1:shiftu,:);
elseif shiftu < 0
    outregi(1:-shiftu,:)    = inregi(h+shiftu+1:h,:);
    outregi(1-shiftu:h,:)   = inregi(1:h+shiftu,:);
end

% ----------------------- end of file -----------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?