Matlab 排列组合代码

COMBNTNS  All possible combinations of a set of values

   c = COMBNTNS(choicevec,choose) returns all combinations of the values of the input choice vector.

 

PERMS  All possible permutations.
   PERMS(1:N), or PERMS(V) where V is a vector of length N, creates a  matrix with N! rows and N columns containing all possible  permutations of the N elements.

 

 

%=================================
% Author:
%         http://emanlee.cnblogs.com
% Date: 2011/6/28
% Function: 置换检验, matlab codes for permutation tests
%=================================
%
%                Control           Drug
% Expression     9 12 14 17        18 21 23 26
% Average        13                22
%
% The difference in averages is 22-13=9.
%=================================

a=[9  12  14  17   18  21  23  26]
Mcontrol = mean(a(1:4));
Mdrug = mean(a(5:8));
SumA = sum(a);
TS = Mdrug-Mcontrol;   %计算检验统计量
Rearranges = combntns(a,4);   %组合,重排,本例有70行
MeanControls = sum(Rearranges,2)/4;   %重排后Control组的样本均值,本例有70行
MeanDrugs = (SumA-sum(Rearranges,2))/4;   %重排后Drug组的样本均值,本例有70行
PermutationValues = MeanDrugs - MeanControls;   %置换值,本例有70行
[m,n]=size(PermutationValues);
hist(PermutationValues )    % 产生直方图

GreaterNumbers=0;    %计算超过检验统计量的置换值的个数
for i=1:m
    if PermutationValues(i,1)>=TS
        GreaterNumbers=GreaterNumbers+1;
    end
end;

PValue=GreaterNumbers/m; %计算P值

%=================================

置换检验代码, matlab codes for permutation tests

 

置换检验代码, matlab codes for permutation tests

 

 置换检验代码, matlab codes for permutation tests

 

 置换检验代码, matlab codes for permutation tests

 

 置换检验代码, matlab codes for permutation tests

 

 置换检验代码, matlab codes for permutation tests

 

 

 

%=================================

 

%=================================

相关文章: