average2.m

来自「OFDM宽带无线系统的链路级的仿真程序(多天线」· M 代码 · 共 26 行

M
26
字号
% take the averaged across a given dimension
% e.g. X is a 100 by 1000 matrix, Y = average2(X,20,2) gives Y of 100 by 50 matrix
% X can be a up to 3 dimension matrix

function y = average2(x,average_factor,dim)
if nargin == 2,
    dim = 1;
end
if dim == 1,
    y = nan(floor(length(x)/average_factor),1);
    for k = 1:floor(length(x)/average_factor)
        y(k) = ...
            mean(x((k-1)*average_factor+1:k*average_factor));
    end
    return;
end
if dim == 2 && length(size(x))==3,
    sizeX = size(x);
    sizeX(dim) = floor(size(x,dim)/average_factor);
    y = zeros(sizeX);
    for k = 1:sizeX(dim)
        y(:,k,:) = mean(x(:,(k-1)*average_factor+1:k*average_factor,:),2);
    end
    return
end

⌨️ 快捷键说明

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