📄 count.m
字号:
function [cout_pre,cout_post,cout] = Count(B, M);
%
% usage: compute counts during interleaving(B=4,M=2)
% parameters : B--buffer depth; M--number of the buffers
% date : 2007-10-12
if nargin < 2; M = 2; end;
if nargin < 1; B = 4; end;
Cin = 1:B*(B-1)*M;
cout1 = zeros (1,B*(B-1)*M); % 前一数据块空间
cout2 = zeros (1,B*(B-1)*M); % 后一数据块空间
cout3 = zeros (1,B*(B-1)*M);
s = B*M-1;
j=1; max=0; temp=0;
for i= 1:B*(B-1)*M;
if (rem(i-1,B) == 0) % 输出数据分成B个数一组,每一组第一个数交织前后位置没有发生变化.所以照常输出
cout2(j) = Cin(i);
cout3(j) = cout2(j);
begin = Cin(i); % 存储每一组的第一个数
else
q = rem(i-1,B); % 因为每一组数的地址都是等差数列,所以此处计算当前数据的位置,具体点说就是与每组第一个数的位置关系
max = begin+B*(B-1)*M; % 计算等差数列的最大值
temp = s*q; % 计算当前数与第一个数应有的差值
if (begin <= temp) % 判断从哪一块数据空间读出数据
cout1(j) = max - temp;
cout3(j) = cout1(j)-B*(B-1)*M;
else
cout2(j) = begin-temp;
cout3(j) = cout2(j);
end;
end;
j = j+1;
end;
cout_pre = cout1;
cout_post = cout2;
cout = cout3;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -