download cat2tbl.m
Language: Matlab
LOC: 27
Project Info
MatLinks/Chorus(matlinks)
Server: SourceForge
Type: cvs
...chest\copyleft\gpl\stixbox\
   bincoef.m
   cat2tbl.m
   ciboot.m
   ciquant.m
   cmpmod.m
   Contents.m
   contincy.m
   corr.m
   covboot.m
   covjack.m
   cvar.m
   datas1.m
   datas10.m
   datas11.m
   datas2.m
   datas3.m
   datas4.m
   datas5.m
   datas6.m
   datas7.m
   datas8.m
   datas9.m
   dbeta.m
   dbinom.m
   dchisq.m
   df.m
   dgamma.m
   dgumbel.m
   dhypg.m
   dlognorm.m
   dnorm.m
   dt.m
   dweib.m
   egumbel.m
   getdata.m
   histo.m
   identif5.m
   identify.m
   kaplamai.m
   ldiscrim.m
   linreg.m
   lodds.m
   loddsinv.m
   logitfit.m
   lsfit.m
   lsselect.m
   normmix.m
   octvinit.m
   pairs.m
   pbeta.m
   pbinom.m
   pchisq.m
   pf.m
   pgamma.m
   pgumbel.m
   phypg.m
   plognorm.m
   plotdens.m
   plotempd.m
   plotsym.m
   pnorm.m
   pt.m
   pweib.m
   qbeta.m
   qbinom.m
   qchisq.m
   qf.m
   qgamma.m
   qgumbel.m
   qhypg.m
   qlognorm.m
   qnorm.m
   qqgamma.m
   qqgumbel.m
   qqnorm.m
   qqplot.m
   qqweib.m
   qt.m
   quantile.m
   qweib.m
   ranktrf.m
   rbeta.m
   rbinom.m
   rboot.m
   rchisq.m
   Readme.m
   rf.m
   rgamma.m
   rgumbel.m
   rhypg.m
   rlognorm.m
   rnorm.m
   rt.m
   rweib.m
   spearman.m
   stdboot.m
   stdize.m
   stdjack.m
   stixdemo.m
   test1b.m
   test1n.m
   test1r.m
   test2n.m
   test2r.m

function t = cat2tbl(m1, m2)
%CAT2TBL  Take category data and produce a table of counts.
%
%         table = cat2tbl(m1, m2)
%
%         It works with one input argument too.
%
%         See also CONTINCY

if nargin < 2
   if size(m1,2) == 2
      m2 = m1(:,2);
      m1 = m1(:,1);
   else
      m2 = ones(size(m1));
   end
end

if size(m1,2) ~= 1 | size(m2,2) ~= 1
   error('Column vectors expected as arguments')
end

if any([m1; m2] ~= round([m1; m2]))
   error('Integers expected in input vectors');
end

if min(m1) == 0
   m1 = m1 + 1;
end
if min(m2) == 0
   m2 = m2 + 1;
end

% Here is a smart solution in Matlab 5:
% t = full(sparse(m1,m2,1));
% But we wat it to work in Octave too, 
% this solution assumes fortran indexing on:

t = zeros(max(m1), max(m2));
x = sort(m1 + (m2-1)*max(m1));
i = find([1; diff(x)>0]);
j = 1:length(x);
count = diff([j(i), length(x)+1]);
t(x(i)) = count;

About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us