combine.m

来自「一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有」· M 代码 · 共 29 行

M
29
字号
function out = combine(obj, n)
%	out = combine(obj, n) returns combinations of obj with n distinct
%	elements.
%	For instance: combine([1 2 3 4 5], 2) or combine('abcde', 3).

%	Roger Jang, Sept-21-1996

if n>length(obj)
	out=[];
	return;
end
if n==1
	out = obj(:);
	return;
end
if n==length(obj)
	out = obj(:)';
	return;
end

out = [];
for i = 1:length(obj)-1,
	first = obj(i);
	tail = obj(i+1:end);
	tail_combinat = combine(tail, n-1);
	loop_out = [first*ones(size(tail_combinat,1), 1), tail_combinat]; 
	out = [out; loop_out];
end

⌨️ 快捷键说明

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