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

📄 confmat.m

📁 国外编的信号识别的程序
💻 M
字号:
function m = confmat(c, d)%CONFMAT Confusion matrix.%   M = CONFMAT(C, D) returns the confusion matrix based on observed%   class index vector C and estimated class index vector D. D may%   contain empty classes but C may not. The result is a g by g%   matrix of probabilities where rows correspond to actual classes%   (in C) and columns correspond to estimated classed (in%   D). Either C or D may actually be matrices of posterior%   probabilities in which all rows sum to 1.%%   See the help for LDA for an example of how to use CONFMAT.%%   See also CLASSIFY, CROSSVAL, MCNEMAR.%   Copyright (c) 1999 Michael Kiefte.%   $Log$error(nargchk(2, 2, nargin))if isempty(c) | ~isa(c, 'double') | ~isreal(c)  error('C must be a real numeric double array.')elseif prod(size(c)) ~= length(c)  if ndims(c) ~= 2 | any(any(c < 0 | isnan(c)))    error(['Posterior probabilities C must be a 2-d array of positive' ...	   ' values.'])  end    [n g] = size(c);    if any(abs(sum(c, 2) - 1) > g*eps)    error('Rows of posterior probability matrix C must sum to 1.')  end    nj = full(sum(c));  C = c;else  if any(round(c) ~= c | c <= 0 | isinf(c))    error(['Class indeces C must be a vector of positive, finite,' ...	   ' non-zero integers.'])  end  n = length(c);  C = sparse(1:n, c, 1);  nj = sum(C);  g = length(nj);    if ~all(nj)    error('Must not have empty groups in class index C.')  elseif length(nj) == 1    error('Class index C must have more than 1 group.')  endendif isempty(d) | ~isa(d, 'double') | ~isreal(d)  error('D must be a real numeric double array.')elseif prod(size(d)) ~= length(d)  if ndims(d) ~= 2 | any(any(d < 0 | isnan(d)))    error(['Posterior probabilities D must be a 2-d array of positive' ...	   ' values.'])  end    if size(d, 1) ~= n    error('Number of observations in C and D must match.')  elseif size(d, 2) > g    error('May not have more categories in D than C.')  elseif size(d, 2) < g    d(1, g) = 0;  end    if any(abs(sum(d, 2) - 1) > g*eps)    error('Rows of posterior probability matrix D must sum to 1.')  end    D = d;else  if any(round(d) ~= d | d <= 0 | isinf(d))    error(['Class indeces D must be a vector of positive, finite,' ...	   ' non-zero integers.'])  end  if length(d) ~= n    error('Number of observations in C and D must match.')  elseif max(d) > g    error('May not have more groups in D than C.')  end    D = sparse(1:n, d, 1);endm = diag(1./full(nj)) * full(C'*D); 

⌨️ 快捷键说明

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