📄 allweight.m
字号:
function v = allweight(n, w)
% v = allweight(n, w)
%
% Computes all binary n-vectors with weight w.
%
% Inputs:
% n = length of vector
% w = weight of vectors (w <= n)
%
% Output:
% v = matrix of vectors with weight w, Nxn
% N = nchoosek(n, w) = number of binary n-vectors of weight w
%
% Release: $Name: $
% Version: $Id: allweight.m,v 1.2 2005-11-24 09:19:26+01 estrom Exp $
% History:
%
% Original by Anders Persson
% Erik Str鰉, 010320
% Erik Str鰉, bug fixed for MATLAB 7, 051124
if w > n
error('Weight of code word > length of code word!');
end
if ( (n > w) & (w > 0) ) %% Recursive!
v = zeros(nchoosek(n, w), n);
n1 = nchoosek(n-1, w-1);
v(1:n1, 1) = ones(n1, 1);
v(1:n1, 2:end) = allweight(n-1, w-1);
n0 = nchoosek(n-1, w);
v(n1+(1:n0), 2:end) = allweight(n-1, w);
else %% Done!
if w == 0
v = zeros(1, n);
else
v = ones(1, w);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -