⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subsets.m

📁 Matlab工具包补充算发
💻 M
字号:
function [T, bitv] = subsets(S, U, L, sorted, N)% SUBSETS Create a set of all the subsets of S which have cardinality <= U and >= L% T = subsets(S, U, L)% U defaults to length(S), L defaults to 0.% So subsets(S) generates the powerset of S.%% Example:% T = subsets(1:4, 2, 1) % T{:} = 1, 2, [1 2], 3, [1 3], [2 3], 4, [1 4], [2 4], [3 4]%% T = subsets(S, U, L, sorted)% If sorted=1, return the subsets in increasing size%% Example:% T = subsets(1:4, 2, 1, 1) % T{:} = 1, 2, 3, 4, [1 2], [1 3], [2 3], [1 4], [2 4], [3 4]%% [T, bitv] = subsets(S, U, L, sorted, N)% Row i of bitv is a bit vector representation of T{i},% where bitv has N columns (representing 1:N).% N defaults to max(S).%% Example:% [T,bitv] = subsets(2:4, 2^3, 0, 0, 5)% T{:} = [], 2, 3, [2 3], 4, [2 4], [3 4], [2 3 4]% bitv=%     0     0     0     0     0%     0     1     0     0     0%     0     0     1     0     0%     0     1     1     0     0%     0     0     0     1     0%     0     1     0     1     0%     0     0     1     1     0%     0     1     1     1     0n = length(S);if nargin < 2, U = n; endif nargin < 3, L = 0; endif nargin < 4, sorted = 0; endif nargin < 5, N = max(S); endbits = ind2subv(2*ones(1,n), 1:2^n)-1;sm = sum(bits,2);masks = bits((sm <= U) & (sm >= L), :);m = size(masks, 1);T = cell(1, m);for i=1:m  s = S(find(masks(i,:)));  T{i} = s;endif sorted   T = sortcell(T);endbitv = zeros(m, N);bitv(:, S) = masks;

⌨️ 快捷键说明

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