📄 genlab.m
字号:
%GENLAB Generate labels for classes% % LABELS = GENLAB(N,LABLIST)% % INPUT% N Number of labels to be generated% LABLIST Label names (optional; default: numeric labels 1,2,3,...)%% OUTPUT% LABELS Labels in a column vector or strinag array%% DESCRIPTION % Generate a set of labels as defined by the LABLIST. N is a number or % a row/column vector of the values for each class. If N is a vector, then% the first N(i) labels get the value LABLIST(i,:). N should have as many % components as LABLIST. If N is a scalar, then N labels are generated for % each class. LABLIST is a column vector or a string array. Labels can be % used to construct a labeled dataset.% % EXAMPLES% Numeric labels, 1..10, 10 classes, 100 labels per class.% LAB1 = GENLAB(100*ones(1,10)); % Character labels, 3 classes, 10 labels per class.% LAB2 = GENLAB([10 10 10], ['A';'B';'C']);% Name labels, 2 classes, 50 labels per class. % The commands below are equivalent.% LAB3 = GENLAB([50 50], {'Apple', 'Pear'}); % LAB3 = GENLAB([50 50], ['Apple'; 'Pear ']);%% SEE ALSO% DATASETS, DATASET% Copyright: R.P.W. Duin, duin@ph.tn.tudelft.nl% Faculty of Applied Sciences, Delft University of Technology% P.O. Box 5046, 2600 GA Delft, The Netherlands% $Id: genlab.m,v 1.2 2006/03/08 22:06:58 duin Exp $function labels = genlab(n,lablist) prtrace(mfilename); if (nargin == 1) % Create numeric labels. labels = []; lab = 1; if (all(n == n(1))) % All label categories have equal cardinalities. J = repmat([1:length(n)],n(1),1); labels = J(:); else for i = 1:length(n) labels = [labels; repmat(lab,n(i),1)]; lab = lab+1; end end else % LABLIST present % Create string or character labels. [m,ncol] = size(lablist); if m ~= length(n) % This is only possible when all label categories have equal cardinalities. if (length(n) > 1) error('Wrong number of labels supplied.') else J = repmat([1:m],n,1); labels = lablist(J(:),:); end elseif (iscell(lablist)) % Cell array % We are here when e.g. GENLAB([10 10],{'Apple'; 'Pear'}) is called. labels = {}; for i = 1:length(n) labels = [labels; repmat(lablist(i),n(i),1)]; end labels = char(labels); % cell string labels are not supported anymore elseif (isstr(lablist)) % Character array % We are here when e.g. GENLAB([10 10],['Apple'; 'Pear ']) is called. labels = char(repmat(lablist(1,:),n(1),1)); for i = 2:length(n) if (n(i) > 0) labels = char(labels,repmat(lablist(i,:),n(i),1)); end end if (n(1) == 0) % First label category not wanted. labels(1,:) = []; end else % Again numeric labels. % We are here, when e.g. GENLAB([10 10 10], [3;6;7]) is called. if (ncol > 1) error('Labels should be characters, strings or single numbers.') end labels = []; for i = 1:length(n) labels = [labels; repmat(lablist(i),n(i),1)]; end end end return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -