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

📄 som_data_struct.m

📁 Kohonen的SOM软件包
💻 M
字号:
function sData = som_data_struct(D, varargin)%SOM_DATA_STRUCT Create a data struct.%% sData = som_data_struct(D, [argID, value, ...])%%  sData  = som_data_struct(D); %  sData  = som_data_struct(D,'name','my_data','labels',labs);%%  Input and output arguments ([]'s are optional): %   D        (matrix) data matrix, size dlen x dim%   [argID,  (string) See below. These are given as argID, value pairs.%    value]  (varies) %%   sData    (struct) created data struct%%  Here are the argument IDs and corresponding values: %   'labels'     (string array / cellstr) labels for each data vector,%                 length=dlen%   'name'       (string) data name%   'comp_names' (string array / cellstr) component names, size dim x 1%   'comp_norm'  (cell array) normalization operations for each%                 component, size dim x 1. Each cell is either empty, %                 or a cell array of normalization structs.%% For more help, try 'type som_data_struct' or check out online documentation.% See also SOM_SET, SOM_INFO, SOM_MAP_STRUCT.%%%%%%%%%%%%% DETAILED DESCRIPTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% som_data_struct   %% PURPOSE%% Creates a data structure. %% SYNTAX%%  sD = som_data_struct(D);%  sD = som_data_struct(...,'argID',value,...);%% DESCRIPTION%% Creates a data struct. The struct contains, in addition to the data% matrix, component names, normalization operations for the components,% labels for each vector, and a name for the whole data set. All of these% can be given in the optional arguments of the function. If left% unspecified, they are given default values. %%  Field         Type         Size / default value    %  ------------------------------------------------------------------------%   .type        (string)     'som_data'               %   .data        (matrix)     size dlen x dim             %   .name        (string)     'unnamed'%   .labels      (cellstr)    size dlen x m, {''; ''; ... ''}%   .comp_names  (cellstr)    size dim x 1, {'Variable1', 'Variable2', ...}%   .comp_norm   (cell array) size dim x 1, {[], [], ... []}%   .label_names (cellstr)    size m x 1, []%                          % '.type' field is the struct identifier. Do not change it.% '.data' field is the data matrix, each row is one data vector% '.name' field is the identifier for the whole data struct% '.labels' field contains the labels for each of the vectors. The ith%         of '.labels' contains the labels for ith data vector. Note that %         if some vectors have more labels than others, the others are%         are given empty labels ('') to pad the '.labels' array up.% '.comp_names' field contains the names of the vector components% '.comp_norm' field contains normalization information for each%         component. Each cell of '.comp_norm' is itself a cell array of%         normalization structs. If no normalizations are performed for %         the particular component, the cell is empty ([]).% '.label_names' is similar to .comp_names field holding the names for%         each data label column%% REQUIRED INPUT ARGUMENTS%%  D  (matrix) The data matrix, size dlen x dim. The data matrix may %              contain unknown values, indicated by NaNs. %  % OPTIONAL INPUT ARGUMENTS %%  argID (string) Argument identifier string (see below).%  value (varies) Value for the argument (see below).%%  The optional arguments can be given as 'argID',value -pairs as%  listed below. If an argument is given value multiple times, the%  last one is used.%%   'labels'     (string array / cellstr) labels for each data vector,%                 size dlen x m%   'name'       (string) data name%   'comp_names' (string array / cellstr) component names, size dim x 1%   'comp_norm'  (cell array) normalization operations for each%                 component, size dim x 1. Each cell is either empty, %                 or a cell array of normalization structs.%   'label_names'(string array / cellstr) label names, size m x 1%% OUTPUT ARGUMENTS% %  sD (struct) the data struct%% EXAMPLES%% Simplest case:%  D  = rand(8, 3); % 8 3-dimensional vectors%  sD = som_data_struct(D);%  % With optional arguments, the other fields can be given values:%  labs   = cell(8, 1); labs{1, 1} = 'first_label';%  cnames = {'first'; 'second'; 'third'};%  %  sD = som_data_struct(D,'labels',labs,'name','a data struct');%  sD = som_data_struct(D,'comp_names',cnames);%% SEE ALSO% %  som_set          Set values and create SOM Toolbox structs.%  som_map_struct   Create a map struct.% Copyright (c) 1997-2000 by the SOM toolbox programming team.% http://www.cis.hut.fi/projects/somtoolbox/% Version 1.0beta ecco 071197% Version 2.0beta juuso 101199%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% data[dlen dim] = size(D);% default valuesif ~isempty(inputname(1)), name = inputname(1); else name = 'unnamed'; endlabels = cell(dlen,1);labels(1:dlen) = {''};%for i=1:dlen, labels{i} = ''; endcomp_names = cell(dim,1);for i = 1:dim, comp_names{i} = sprintf('Variable%d', i); endcomp_norm = cell(dim,1);label_names = []; % varargini=1; while i<=length(varargin),   argok = 1;   if ischar(varargin{i}),     switch varargin{i},       % argument IDs     case 'comp_names', i=i+1; comp_names = varargin{i};      case 'labels',     i=i+1; labels = varargin{i};     case 'name',       i=i+1; name = varargin{i};     case 'comp_norm',  i=i+1; comp_norm = varargin{i};     case 'label_names',i=i+1; label_names = varargin{i};     otherwise argok=0;     end  else    argok = 0;   end  if ~argok,     disp(['(som_data_struct) Ignoring invalid argument #' num2str(i+1)]);   end  i = i+1; end% create structsData = som_set('som_data','data',D,'labels',labels,...                          'name',name,'comp_names',comp_names,...                          'comp_norm',comp_norm,'label_names',label_names);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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